Rotate(Vector3 axis, float angle,Space relativeTo);じくかくかいてんピット


この関数の使用方法をテストします:public void Rotate(Vector 3 axis,float angle,[DefaultValue("Space.Self")]Space relativeTo;(1)第1の回転方式:回転軸new Vector 3(0,1,0)、軸回り毎秒10度回転、座標系:世界.
Rotate(Vector3.up, Time.DeltaTime10,  Space.World);

世界系では、Vector 3.up=(0,1,0)は世界座標の下(0,1,0)と考えられ、世界系(0,1,0)の軸回りに回転することを表す.(1)第2の回転方式:回転軸new Vector 3(0,1,0)、軸回りに毎秒10度回転することを示す.座標系:物体.
Rotate(Vector3.up, Time.DeltaTime10,  Space.Self);

自己係下、Vector 3.up=(0,1,0)は、物体自身(0,1,0)の軸回りに回転する(1)第3の回転方式である回転軸transformを表す自己系座標表示と考えることができる.up、軸回りに毎秒10度回転し、座標系:世界.
Rotate(transform.up, Time.DeltaTime10,  Space.World);

坑:transform.upは物体のy軸ですがtransform.upの座標は世界座標の下で表されます.世界系では、世界系の座標をtransformとする.upの軸が回転します.(1)第4の回転方式:回転軸axis、軸回り毎秒10度回転、座標系:自身.
Vector3 axis=transform.worldToLocalMatrix.MultiplyPoint(transform.up);
Rotate(axis, Time.DeltaTime10,  Space.Self);

ピット:transformのためです.upは世界系の座標であり、ここでaxisは自己系の座標を必要とするので、回転軸はtransformである.ああ、transform.upは座標をtransformに変換する.worldToLocalMatrix.MultiplyPoint(transform.up)でなければなりません.まとめ:SpaceはWorldで、回転軸は必ず世界系が表す座標です.SpaceはSelfのもので、回転軸は必ずself系が表す座標で、変わるものではありません.