方法一:用代码实现
主要通过 MeshFilter.mesh.SetUVs函数来实现uv旋转,主要代码如下:
public void RotateUV ()
{
List<Vector2> uvs = new List<Vector2>( go.GetComponent<MeshFilter>().mesh.uv );
float speed = 0;
if ( switchfun )
speed = rotatespeed * Mathf.Deg2Rad * Time.deltaTime;
else
speed = rotatespeed * Mathf.Deg2Rad;
for ( int i = 0; i < uvs.Count; i++ )
{
Vector2 uv = uvs[i] - new Vector2( 0.5f, 0.5f );
uv = new Vector2( uv.x * Mathf.Cos( speed ) - uv.y * Mathf.Sin( speed ),
uv.x * Mathf.Sin( speed ) + uv.y * Mathf.Cos( speed ) );
uv += new Vector2( 0.5f, 0.5f );
uvs[i] = uv;