我正在玩this Unity sample game中的代码,以了解如何使用着色器转换对象。游戏使用着色器来曲线化世界,其中一个着色器也会使对象围绕其y轴旋转。我想修改它以围绕它的z轴旋转对象。
我已经尝试过交换z和y,但是虽然确实得到了我正在用于此实验的圆柱绕z轴旋转,但它也会导致圆柱体伸展。仅将rotVert.z更改为rotVert.y会导致圆柱体以45度角旋转在其侧面。谁能告诉我哪里出错了?
这是导致对象围绕y轴旋转的代码:
float4 rotVert = v.vertex;
rotVert.z = v.vertex.z * cos(_Time.y * 3.14f) - v.vertex.x * sin(_Time.y * 3.14f);
rotVert.x = v.vertex.z * sin(_Time.y * 3.14f) + v.vertex.x * cos(_Time.y * 3.14f);
o.vertex = UnityObjectToClipPos(rotVert);