(Unity) 向量乘法和位置更新如何统一工作?
(Unity) How does vector multiplication and position updates work in unity?
这段代码涉及 Vector3 moveVector 与浮点数 moveSpeed 和另一个浮点数 Time.deltaTime 的乘法。这些浮点数是否乘以 Vector3 (x, y, z) 的每个值?此外,如果我写 transform.position 而不是 GameObject.transform.position,我认为 transform.position 转换全局对象的位置,从而更新任何 GameObject/prefab 的位置是否正确?移动脚本附加到?
void Move(Vector3 desiredDirection)
{
moveVector.Set(desiredDirection.x, 0f, desiredDirection.z);
moveVector = moveVector * moveSpeed * Time.deltaTime;
transform.position += moveVector;
}
是的。 moveVector * moveSpeed * Time.deltaTime;
从矢量中取出每个数字并将其与移动速度相乘,然后再次与 Time.deltaTime。
因此,如果我们有一个向量 3、2、1,则每个轴都乘以该值:
3 * 速度 * 增量时间
2 * 速度 * 增量时间
1 * 速度 * deltaTime
transform.position
等同于写gameObject.transform.position
。因为脚本附加到游戏对象。
注意 GameObject 和 gameObject 的区别。
gameObject 是脚本附加到的当前对象
GameObject是object
的baseclass
这段代码涉及 Vector3 moveVector 与浮点数 moveSpeed 和另一个浮点数 Time.deltaTime 的乘法。这些浮点数是否乘以 Vector3 (x, y, z) 的每个值?此外,如果我写 transform.position 而不是 GameObject.transform.position,我认为 transform.position 转换全局对象的位置,从而更新任何 GameObject/prefab 的位置是否正确?移动脚本附加到?
void Move(Vector3 desiredDirection)
{
moveVector.Set(desiredDirection.x, 0f, desiredDirection.z);
moveVector = moveVector * moveSpeed * Time.deltaTime;
transform.position += moveVector;
}
是的。 moveVector * moveSpeed * Time.deltaTime;
从矢量中取出每个数字并将其与移动速度相乘,然后再次与 Time.deltaTime。
因此,如果我们有一个向量 3、2、1,则每个轴都乘以该值: 3 * 速度 * 增量时间 2 * 速度 * 增量时间 1 * 速度 * deltaTime
transform.position
等同于写gameObject.transform.position
。因为脚本附加到游戏对象。
注意 GameObject 和 gameObject 的区别。
gameObject 是脚本附加到的当前对象 GameObject是object
的baseclass