Unity3D 第一人稱視角攝像機旋轉控制
阿新 • • 發佈:2019-01-04
//方向靈敏度 public float sensitivityX = 10.0f; public float sensitivityY = 10.0f; //上下最大視角(Y視角) public float minmumY = -60f; public float maxmunY = 60f; float rotationY = 0f; void Update() { //根據滑鼠移動的快慢(增量),獲得相機左右旋轉的角度(處理X) float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX; //根據滑鼠移動的快慢(增量),獲取相機上下移動的角度(處理Y) rotationY += Input.GetAxis("Mouse Y") * sensitivityY; //角度限制,rotationY小於min返回min 大於max 返回max 否則返回value rotationY = Clamp(rotationY,maxmunY,minmumY); //設定攝像機角度 transform.localEulerAngles = new Vector3(-rotationY,rotationX,0); } public float Clamp(float value,float max,float min) { if (value < min) return min; if (value > max) return max; return value; } void Start() { Rigidbody rigidbody = GetComponent<Rigidbody>(); if (rigidbody) { rigidbody.freezeRotation = true; } }