通过wasd或上下左右键控制位移,鼠标控制视角旋转。
public class PlayerMovement : MonoBehaviour {
public float moveSpeed = 5f;
Vector3 movement;
Rigidbody playerRigidbody;
int floorMask;
float camRayLength = 100f;
void Start () {
playerRigidbody = GetComponent<Rigidbody>();
floorMask = LayerMask.GetMask("Floor");
}
void Update () {
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
Move(h, v);
Turning();
}
void Move(float h,float v)
{
movement.Set(h, 0f, v);
movement = movement.normalized * moveSpeed * Time.deltaTime;
playerRigidbody.MovePosition(transform.position + movement);
}
void Turning()
{
Ray camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit floorHit;
if(Physics.Raycast(camRay,out floorHit, camRayLength