使用Shader制作loading旋转动画
效果图:
1.绕Z轴旋转的旋转矩阵
2.UV旋转的步骤
(1) 由于旋转矩阵是绕原点旋转的,要把要旋转的UV坐标平移到原点
1 i.uv -= float2(0.5, 0.5); 2 float2 tempUV = i.uv;
(2)旋转UV坐标
1 i.uv.x = cos(_Speed * _Time.y) * tempUV.x - sin(_Speed * _Time.y)*tempUV.y; 2 i.uv.y = sin(_Speed * _Time.y) * tempUV.x + cos(_Speed * _Time.y) * tempUV.y;
(3)把多余部分的图片,设置采样点为(0,0)
1 if (abs(i.uv.x) > 0.5 || abs(i.uv.y) > 0.5) 2 { 3 i.uv = float2(0, 0); 4 }
(4)平移回去
i.uv += float2(0.5, 0.5);
注意需要开启Alpha通道,并关闭ZWrite