我正在制作简单的游戏,我需要创建扩展圆柱体。我知道如何正常地做 - 通过改变对象的枢轴点和缩放它,但现在我有纹理,我不希望它伸展。
当我不得不长大时,我努力在气缸末端添加小段,但这不会顺畅,可能会影响性能。你知道解决这个问题吗?
这是我现在正在使用的绳索纹理(但将来可能会改变):
缩放前
缩放后
答案 0 :(得分:0)
我不希望它伸展
这不容易实现,但有可能。
您有两种方法可以做到这一点。
1 。一个是在程序上生成绳索网格并实时分配材料。这对初学者来说很复杂。对此无能为力。
2 。另一种不需要网格程序网格生成的解决方案。当对象改变大小时更改切片。
为此,您的纹理必须是可平铺的。你不能只是在线使用任何随机纹理。此外,您需要一个普通的地图来实际使它看起来像一根绳子。这是一个tutorial,用于在Maya中使用法线贴图制作绳索纹理。您还必须观看视频的其他部分。
选择纹理,将Texture Type
更改为Texture
,将Wrap Mode
更改为Repeat
,然后点击应用。
获取MeshRenderer
的{{1}},然后从Mesh
获取3D对象Material
。使用MeshRenderer
更改纹理图块。例如,当更改下面代码的ropeMat.SetTextureScale
和xTile
值时,网格的纹理将被平铺。
yTile
现在,您必须找到一种方法,将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
的大小。这并不简单。 Here是在重新调整网格/绳索大小时计算Mesh
和xTile
应该是什么值的完整方法。