每次要用的时候都要写一会,真麻烦。直接复制粘贴吧!
using System;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class PlayerMove : MonoBehaviour
{
private CharacterController _controller;
[SerializeField] private float moveSpeed = 6.0f;
private Camera mainCamera;
[SerializeField] private float rotateSpeed = 50;
private float x, y;
//重力
[SerializeField] private float gravity = 110f;
[SerializeField] private float jumpSpeed = 8.0f;
private Vector3 moveDirection = Vector3.zero;
private void Awake()
{
_controller = GetComponent<CharacterController>();
mainCamera = Camera.main;
}
private void Update()
{
// Move
if (_controller.isGrounded)
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= moveSpeed;
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
_controller.Move(moveDirection * Time.deltaTime);
// Rotate
if (Input.GetMouseButton(1))
{
y = Input.GetAxis("Mouse X");
x = Input.GetAxis("Mouse Y");
mainCamera.transform.eulerAngles +=
new Vector3(-x * Time.deltaTime * rotateSpeed, y * Time.deltaTime * rotateSpeed, 0);
}
}
}