Pass
{
Cull Back
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float _FloatAngle;
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
float4 tangent : TANGENT;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
v2f vert (appdata v)
{
v2f o;
float angle=_Time.z;
float xx=v.vertex.x*cos(angle)+sin(angle)*v.vertex.z;
float zz=-v.vertex.x*sin(angle)+cos(angle)*v.vertex.z;
v.vertex.x=xx;
v.vertex.z=zz;
v.vertex.xyzw+=v.tangent*_FloatAngle;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
sampler2D _MainTex;
fixed4 frag (v2f i) : SV_Target
{
fixed2 tmp=i.uv;
tmp.y+=_Time.x;
fixed4 col = tex2D(_MainTex, tmp);
// just invert the colors
//col.rgb = 1 - col.rgb;
return col;
}
ENDCG
}
```![图片说明](https://img-ask.csdn.net/upload/201812/21/1545379301_855625.png)
在用编写物体围绕自身y轴自转的时候,一开始只有一个Cube,其原始位置是(0,0,0),其自转是正确的;
之后将Cube移出一点位置,使其脱离坐标原点,效果也是正常;
但是!在拥有2个及两个以上Cube的时候,两个Cube的自转都是围绕着世界的原点进行旋转;
这里有一个疑问,为什么一个可以,而多个之后就要围绕着世界轴旋转?
而且我将材质添加到Sphere的时候,无论有几个Sphere都是围绕着自身的y轴旋转
这里有另外一个疑问,为什么Sphere和Cube会出现两种不同的结果?