using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public Transform m_transform;
CharacterController m_ch;
public float speed = 4.0f;
public float gravity = 5.0f;
public Transform m_camTransform;
public Vector3 m_camRot;
public float m_camHeight = 1.4f;
public void Start()
{
m_transform = transform;
m_ch = GetComponent<CharacterController>();
m_camTransform = Camera.main.transform;
m_camTransform.position = m_transform.TransformPoint(0, m_camHeight, 0);
m_camTransform.rotation = m_transform.rotation;
m_camRot = m_camTransform.eulerAngles;
}
// Update is called once per frame
public void Update()
{
Control();
}
public void Control()
{
Vector3 motion = Vector3.zero;
motion.x = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
motion.z = Input.GetAxis("Vertical") * speed * Time.deltaTime;
motion.y -= gravity * Time.deltaTime;
m_ch.Move(m_transform.TransformDirection(motion));
float rh = Input.GetAxis("Mouse X");
float rv = Input.GetAxis("Mouse Y");
m_camRot.x -= rv;
m_camRot.y += rh;
m_camTransform.eulerAngles = m_camRot;
Vector3 camrot = m_camTransform.eulerAngles;
camrot.x = 0;
camrot.y = 0;
m_camTransform.eulerAngles = camrot;
m_camTransform.position = m_transform.TransformPoint(0, m_camHeight, 0);
}
public void OnDrawGizmos()
{
Gizmos.DrawIcon(transform.position, "Spawn.tif");
}
}
之前看过大神做的 亲测有用~
void Update ()
{
if(Input.GetMouseButton(1))
{
if (axes == RotationAxes.MouseXAndY)
{
// Read the mouse input axis
rotationX += Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationX = ClampAngle (rotationX, minimumX, maximumX);
rotationY = ClampAngle (rotationY, minimumY, maximumY);
Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
transform.localRotation = originalRotation * xQuaternion * yQuaternion;
}
else if (axes == RotationAxes.MouseX)
{
rotationX += Input.GetAxis("Mouse X") * sensitivityX;
rotationX = ClampAngle (rotationX, minimumX, maximumX);
Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
transform.localRotation = originalRotation * xQuaternion;
}
else
{
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = ClampAngle (rotationY, minimumY, maximumY);
Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
transform.localRotation = originalRotation * yQuaternion;
}
}
}可以试试~