FPS的camera

2016-04-14  本文已影响36人  自由的天空

public enum RotationAxes    {        MouseXAndY = 0,        MouseX = 1,        MouseY = 2    }  

  public RotationAxes axes = RotationAxes.MouseXAndY;  

  public float sensitivityHor = 9.0f;   

 public float sensitivityVert = 9.0f;  

  public float minimumVert = -45.0f;    

public float maximumVert = 45.0f; 

   private float _rotationX = 0;    

void Start()    {    

Rigidbody body = GetComponent<Rigidbody>();

if (body != null)

body.freezeRotation = true;

}

void Update()

{

if (axes == RotationAxes.MouseX)

{

transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityHor, 0);

}

else if (axes == RotationAxes.MouseY)

{

_rotationX -= Input.GetAxis("Mouse Y") * sensitivityVert;

_rotationX = Mathf.Clamp(_rotationX, minimumVert, maximumVert);

float rotationY = transform.localEulerAngles.y;

transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);

}

else {

_rotationX -= Input.GetAxis("Mouse Y") * sensitivityVert;

_rotationX = Mathf.Clamp(_rotationX, minimumVert, maximumVert);

float delta = Input.GetAxis("Mouse X") * sensitivityHor;

float rotationY = transform.localEulerAngles.y + delta;

transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);

}

}

上一篇下一篇

猜你喜欢

热点阅读