Unity 6.3
0 онлайн 54 гостей 3 в системе
Вход

Rigidbody.MovePosition

Declaration

public void MovePosition(Vector3 position);

Параметры

Параметр Описание
должность Предоставляет новое положение для объекта Rigidbody.

Описание

Перемещает кинематические Rigidbody в направлении position.

Rigidbody.MovePosition движется a Rigidbody и соответствует настройкам интерполяции. Rigidbody включена интерполяция, Rigidbody.MovePosition создает плавный переход между кадрами. Unity движется a Rigidbody в каждом FixedUpdate позвонить. position происходит в мировом пространстве. Rigidbody из одного положения в другое, используйте Rigidbody.position вместо MovePosition.

using UnityEngine;
using UnityEngine.InputSystem;

public class Example : MonoBehaviour { private Rigidbody rb; private float moveSpeed = 5f;

[Header("Input Actions")] public InputActionReference moveAction;

private void OnEnable() { moveAction.action.Enable(); }

private void OnDisable() { moveAction.action.Disable(); } void Awake() { //Fetch the Rigidbody from the GameObject with this script attached rb = GetComponent<Rigidbody>(); }

void FixedUpdate() { //Store user input as a movement vector Vector3 m_Input = new Vector3(moveAction.action.ReadValue<Vector2>().x, 0, moveAction.action.ReadValue<Vector2>().y);

//Apply the movement vector to the current position, which is //multiplied by deltaTime and speed for a smooth MovePosition rb.MovePosition(transform.position + m_Input * Time.fixedDeltaTime * moveSpeed); } }