Rigidbody相关的操作最好放在FixedUpdate中,update中可能会无效果

void Turning()
{

// Create a ray from the mouse cursor on screen in the direction of the camera.
Ray camRay = Camera.main.ScreenPointToRay(Input.mousePosition);

// Create a RaycastHit variable to store information about what was hit by the ray.
RaycastHit floorHit;

// Perform the raycast and if it hits something on the floor layer...
if (Physics.Raycast(camRay, out floorHit, camRayLength, floorMask))
{

// Create a vector from the player to the point on the floor the raycast from the mouse hit.
Vector3 playerToMouse = floorHit.point - transform.position;

// Ensure the vector is entirely along the floor plane.
playerToMouse.y = 0f;

// Create a quaternion (rotation) based on looking down the vector from the player to the mouse.
Quaternion newRotatation = Quaternion.LookRotation(playerToMouse);

// Set the player's rotation to this new rotation.
m_Rigidbody.MoveRotation(newRotatation);

}

原文地址:https://www.cnblogs.com/alps/p/6115704.html