在一个物体的脚本的update中加入
transform.Translate(Vector3.forward*20*Time.deltaTime);
上述代码将物体沿着它的正前方(Z 轴正方向)移动。你可以通过更改 Vector3.forward
来调整移动的方向。如果改成Vector3.back就会向
Z 轴反方向移动。
如果我们想创建一个位置,可以用
Vector3 myVector = new Vector3(1.0f, 2.0f, 3.0f);
这样我们就创建了一个坐标为(1,2,3)的点。
vector3中的一些方法
distance:
float distance = Vector3.Distance(vector1, vector2);
- 返回两个向量之间的距离。
angle:
float angle = Vector3.Angle(fromVector, toVector);
- 返回从一个向量到另一个向量的角度。
normalized:
Vector3 normalizedVector = vector.normalized;
- 返回一个单位向量,具有相同的方向但长度为 1。原向量不会被修改。
vector3的一些使用
物体位置和位移:
transform.position
表示物体在世界空间中的位置,是一个Vector3
。transform.Translate(Vector3.forward * Time.deltaTime)
将物体沿着它的正前方移动。
旋转:
transform.rotation
表示物体的旋转,通常使用Quaternion
类型。transform.Rotate(Vector3.up * Time.deltaTime)
绕着 Y 轴旋转物体。因为up为(0,1,0)
观察方向:
transform.forward
是物体正前方的单位向量(Vector3
)。transform.LookAt(targetPosition)
使物体朝向目标位置。
力的应用:
Rigidbody.AddForce(Vector3.up * force)
在物体上应用向上的力。
射线投射:
Ray ray = new Ray(origin, Vector3.forward)
使用Vector3.forward
定义射线的方向。
游戏物体之间的相对位置:
- 计算一个物体相对于另一个物体的位置,例如在进行相机跟随时。
Vector3 relativePosition = objectB.transform.position - objectA.transform.position;