[英]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.