Unity的Rigidbody

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq826364410/article/details/86521725
using UnityEngine;

public class RigidBodyTest : MonoBehaviour
{
    Rigidbody m_Rigidbody;
    void Start()
    {
        m_Rigidbody = transform.GetComponent<Rigidbody>();
    }

    private void FixedUpdate()
    {
        // 更平滑的移动
        // m_Rigidbody.MovePosition比使用Transform.position更新位置要快,
        // 因为后者将导致所有连接的Colliders重新计算它们相对于Rigidbody的位置。
        m_Rigidbody.MovePosition(transform.position + Vector3.forward * Time.deltaTime);

        //更平滑的旋转
        // m_Rigidbody.MoveRotation比使用Transform.position更新旋转要快,
        // 因为后者将导致所有连接的Colliders重新计算它们相对于Rigidbody的旋转
        Quaternion deltaRotation = Quaternion.Euler(new Vector3(0, 100, 0) * Time.deltaTime);
        m_Rigidbody.MoveRotation(m_Rigidbody.rotation * deltaRotation);

        // 施加力
        m_Rigidbody.AddForce(Vector3.forward, ForceMode.Impulse);
        // 施加扭力
        float turn = Input.GetAxis("Horizontal");
        Vector3 vec = transform.up * 2 * turn;
        m_Rigidbody.AddTorque(vec);

    }
}

猜你喜欢

转载自blog.csdn.net/qq826364410/article/details/86521725