版本: Unity 6 (6000.0)
语言English
  • C#

Rigidbody.MovePosition

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每个修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void MovePosition(Vector3 position);

参数

position 提供 Rigidbody 对象的新位置。

描述

将运动学 Rigidbody 移动到 position

Rigidbody.MovePosition 移动刚体并符合插值设置。当启用刚体插值时,Rigidbody.MovePosition 会在帧之间创建平滑过渡。Unity 在每个 FixedUpdate 调用中移动 Rigidbodyposition 发生在世界空间中。要将 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); } }