Unity3d vector3.forward和transform.forward的区别!
这篇文章讲的很清楚了,基本上能看懂了,就差不多理解了,不能理解多多讨论。
总结下来,核心思想就是:、
- transform是世界坐标系下的概念,什么
transform.up,transform.right,transform.forward
,全是物体自身的朝向在世界坐标系下的数值
,意思就是如果你的物体旋转了,那么你的z轴朝向在世界坐标系下的值就是transform.forward。
- vector是设定的概念,Vector3.forward就是(0,0,1),无论物体怎么旋转,他永远是这个值
那么当我们使用transform.translate( Vector3 param ,Space.self / Space.Word)
时,如果使用的是transform
的话,那么我们就要用Space.Word
,因为那是在世界坐标系下的值,如果使用Space.self的话,就相当于把transform在世界坐标系中的各个指向转化为本物体的坐标系下的数值,再进行移动,结果可能就会非常奇怪。