[英]Extending textured gameObject smoothly in Unity
我不要它伸展
这并非易事,但有可能。
您有两种方法可以做到这一点。
1。一种方法是程序性地生成绳网并实时分配材料。 对于初学者来说这很复杂。 对此无能为力。
2,另一种不需要网格程序的解决方案。 在对象更改大小时更改图块。
为此,您的纹理必须是可平铺的。 您不能只在线使用任何随机纹理。 另外,您需要一个法线贴图才能使其看起来像绳子。 这是在Maya中使用法线贴图制作绳索纹理的教程 。 您还必须观看视频的其他部分。
选择纹理,将Texture Type
更改为Texture
,将Wrap Mode
更改为Repeat
然后单击应用 。
获取Mesh
的MeshRenderer
,然后从MeshRenderer
获取3D对象的Material
。使用ropeMat.SetTextureScale
更改纹理的平铺。 例如,当更改下面代码的xTile
和yTile
值时,将对Mesh的纹理进行平铺。
public float xTile, yTile;
public GameObject rope;
Material ropeMat;
void Start()
{
ropeMat = rope.GetComponent<MeshRenderer>().material;
}
void Update()
{
ropeMat.SetTextureScale("_MainTex", new Vector2(xTile, yTile));
}
现在,您必须找到一种将xTile
和yTile
值映射到Mesh
大小的方法。 这并不简单。 这是一种完整的方法,可用于在调整网格/绳索大小时计算xTile
和yTile
值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.