Legacy Documentation: Version 2018.2 (Go to current version)
LanguageEnglish
  • C#

Rigidbody.MovePosition

Switch to Manual
public void MovePosition(Vector3 position);

Parameters

positionThe new position for the Rigidbody object.

Description

Moves the rigidbody to position.

Use Rigidbody.MovePosition to move a Rigidbody, complying with the Rigidbody's interpolation setting.

If Rigidbody interpolation is enabled on the Rigidbody, calling Rigidbody.MovePosition results in a smooth transition between the two positions in any intermediate frames rendered. This should be used if you want to continuously move a rigidbody in each FixedUpdate.

Set Rigidbody.position instead, if you want to teleport a rigidbody from one position to another, with no intermediate positions being rendered.

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); } }

If the rigidbody has isKinematic set false then it works differently. It works like transform.position=newPosition and teleports the object (rather than a smooth transition).

Did you find this page useful? Please give it a rating: