position | 提供 Rigidbody 对象的新位置。 |
将运动学 Rigidbody 移动到 position
。
Rigidbody.MovePosition 移动刚体并符合插值设置。当启用刚体插值时,Rigidbody.MovePosition 会在帧之间创建平滑过渡。Unity 在每个 FixedUpdate
调用中移动 Rigidbody。 position
发生在世界空间中。要将 Rigidbody 从一个位置传送到另一个位置,请使用 Rigidbody.position 而不是 MovePosition。
using UnityEngine;
public class Example : MonoBehaviour { Rigidbody m_Rigidbody; public float m_Speed = 5f;
void Start() { //Fetch the Rigidbody from the GameObject with this script attached m_Rigidbody = GetComponent<Rigidbody>(); }
void FixedUpdate() { //Store user input as a movement vector Vector3 m_Input = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
//Apply the movement vector to the current position, which is //multiplied by deltaTime and speed for a smooth MovePosition m_Rigidbody.MovePosition(transform.position + m_Input * Time.deltaTime * m_Speed); } }