Camera Vertical Rotate(相機垂直旋轉)
阿新 • • 發佈:2018-12-31
垂直的旋轉(camreaHandle的x旋轉的效果):要將旋轉的角度控制在-40到30之間,注意不能用rotate的方法去調整角度,會發生同位角的問題到一定角度會突然跳到同位角位置。
程式碼增加:
public class cameracontroller : MonoBehaviour { public PlayerInput pi;//用來在update裡面調整 public float horizontalSpeed = 100.0f;//視覺化控制 public float verticalSpeed = 80.0f; private GameObject playerHandle; private GameObject cameraHandle; private float tempEulerX; // Use this for initialization void Awake() { cameraHandle = transform.parent.gameObject;//找自己的父層轉成gameobject playerHandle = cameraHandle.transform.parent.gameObject; tempEulerX = 20; } // Update is called once per frame void Update () { playerHandle.transform.Rotate(Vector3.up, pi.Jright * horizontalSpeed * Time.deltaTime);//用rotate方法進行旋轉 //不用rotate方法會發生同位角問題 用普通加減來調整旋轉 //tempEulerX = cameraHandle.transform.eulerAngles.x; tempEulerX -= pi.Jup * verticalSpeed * Time.deltaTime; tempEulerX =Mathf.Clamp( tempEulerX, -40, 30);//將角度控制在-40到30 cameraHandle.transform.localEulerAngles= new Vector3(tempEulerX, 0, 0);//通過給一個新的角度讓相機旋轉 } }
這樣實現了相機的垂直旋轉(x的旋轉).