position | 为 Rigidbody 对象提供新位置。 |
将运动 Rigidbody 向 position
移动。
Rigidbody.MovePosition moves a Rigidbody and complies with the interpolation settings. When Rigidbody interpolation is enabled, Rigidbody.MovePosition creates a smooth transition between frames. Unity moves a Rigidbody in each FixedUpdate
call. The position
occurs in world space. Teleporting a Rigidbody from one position to another uses Rigidbody.position instead of 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); } }