简体   繁体   中英

Extending textured gameObject smoothly in Unity

I'm creating simple game and I need to create extending cylinder. I know how to normally do it - by changing objects pivot point and scaling it up, but now I have texture on it and I don't want it to stretch.

I fought about adding small segments to the end of the cylinder when it has to grow, but this wont work smooth and might affect performance. Do you know any solution to this?

This the rope texture that I'm using right now(but it might change in the future):

Before scaling

在此处输入图片说明

After scaling

在此处输入图片说明

I don't want it to stretch

This is not easy to accomplish but it is possible.

You have two ways to do this.

1 .One is to procedurally generate the rope mesh and assign material real-time. This is complicated for beginners. Can't help on this one.

2 .Another solution that doesn't require mesh procedurally mesh generation. Change the tiles while the Object is changing size.

For this to work, your texture must be tileable. You can't just use any random texture online. Also, you need a normal map to actually make it look like a rope. Here is a tutorial for making a rope texture with normal map in Maya. There are other parts of the video you have to watch too.

Select the texture, change Texture Type to Texture , change Wrap Mode to Repeat then click Apply .

Get the MeshRenderer of the Mesh then get Material of the 3D Object from the MeshRenderer .Use ropeMat.SetTextureScale to change the the tile of the texture. For example, when changing the xTile and yTile value of the code below, the texture of the Mesh will be tiled.

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));
}

Now, you have to find a way to map the xTile and yTile values to the size of the Mesh . It's not simple. Here is complete method to calculate what value xTile and yTile should be when re-sizing the mesh/rope.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM