Version: 2017.3

Rigidbody.MovePosition

切换到手册
public void MovePosition (Vector3 position);

参数

position 刚体对象的新位置。

描述

将刚体移动到 /position/。

使用 Rigidbody.MovePosition 移动刚体,符合刚体的插值设置。

如果在刚体上启用了刚体插值,则调用 Rigidbody.MovePosition 会导致在渲染的任意中间帧中的两个位置之间平滑过渡。若要在每个 FixedUpdate 中连续移动刚体,则应使用该方法。

若要将刚体从一个位置传送到另一个位置,并且不渲染任何中间位置,请改为设置 Rigidbody.position。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Vector3 teleportPoint; public Rigidbody rb;

void Start() { rb = GetComponent<Rigidbody>(); }

void FixedUpdate() { rb.MovePosition(transform.position + transform.forward * Time.deltaTime); } }

如果将刚体的 isKinematic 设置为 false,则其以不同的方式工作。 它的工作方式类似于 transform.position=newPosition 并传送对象 (而不是平滑过渡)。