5327人加入学习
(15人评价)
3D数学基础:Unity游戏开发

制作于2018.2.4,基于Unity2017.2。

价格 ¥ 144.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

//下列两条语句等价

transform.Translate(Time.deltaTime*transform.up,Space.World);

transform.Translate(Time.deltaTime*Vector3.up);

[展开全文]

transform.transformDirection()将一个方向从局部坐标系转成全局坐标,不考虑长度

transform.inverseTransformDirection()同理

 

transform.transfomVector()将一个向量从局部变成全局

transform.inverseTransformVector()同理

transform.forward当前物体的局部坐标系的z轴在世界坐标系上的指向

transform.right为x轴

transform.up为y轴

[展开全文]
transform.Translate(transform.forward * Time.deltaTime, Space.Self);

首先transform.forward是当前物体的物体坐标系的z轴在世界坐标系上的指向,那么就是系统根据物体本身的局部坐标计算出的世界坐标!!!,但是如果你用了Space.Self,需要的是局部坐标,那么你的transform.forward就会再次被转换成局部坐标。所以就造成了,如果你物体旋转度是30,transform.forward就是30度的方向,然后,transform.forward在计算成局部坐标就会变成再+30度,所以看起来就是世界坐标的60度方向移动。

[展开全文]

vector3.forward会计算旋转的影响,会根据旋转的角度产生变换

transform.forward不计算旋转的影响,固定根据世界坐标or局部坐标的Z轴运动

[展开全文]