以下是一个没有受重力影响的刚体运动的代码示例,使用Unity游戏引擎的C#语言编写:
using UnityEngine;
public class NonGravityRigidbodyMovement : MonoBehaviour
{
public float moveSpeed = 5f;
public float rotationSpeed = 180f;
private Rigidbody rigidbody;
private void Start()
{
rigidbody = GetComponent();
rigidbody.useGravity = false; // 关闭重力影响
rigidbody.isKinematic = true; // 设置为运动学刚体,不受外力影响
}
private void Update()
{
// 获取输入值
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
// 移动刚体
Vector3 moveDirection = new Vector3(horizontalInput, 0f, verticalInput).normalized;
rigidbody.MovePosition(transform.position + moveDirection * moveSpeed * Time.deltaTime);
// 旋转刚体
Quaternion rotation = Quaternion.Euler(0f, horizontalInput * rotationSpeed * Time.deltaTime, 0f);
rigidbody.MoveRotation(transform.rotation * rotation);
}
}
这个示例代码将一个游戏对象(拥有Rigidbody组件)设置为不受重力影响的运动学刚体。在Start
方法中,我们关闭了刚体的重力影响并设置为运动学刚体。在Update
方法中,我们获取输入值来控制刚体的移动和旋转。通过rigidbody.MovePosition
方法和rigidbody.MoveRotation
方法,我们可以直接改变刚体的位置和旋转,而不受重力影响。