今天寫一個demo,要用到鼠標鍵盤控制三維視角,因此寫了個腳本用於控制。
該腳本可以用於即時戰略類游戲的視角,提供了縮進,拉伸,旋轉。同時按住鼠標右鍵不放,移動鼠標可以實現第一人稱視角的效果。
1 using UnityEngine; 2 using System.Collections; 3 4 public class CameraController : MonoBehaviour { 5 6 7 public float near = 20.0f; 8 public float far = 100.0f; 9 10 public float sensitivityX = 10f; 11 public float sensitivityY = 10f; 12 public float sensitivetyZ = 2f; 13 public float sensitivetyMove = 2f; 14 public float sensitivetyMouseWheel = 2f; 15 16 17 void Update () { 18 // 滾輪實現鏡頭縮進和拉遠 19 if (Input.GetAxis("Mouse ScrollWheel") != 0) 20 { 21 this.camera.fieldOfView =this.camera.fieldOfView - Input.GetAxis("Mouse ScrollWheel")*sensitivetyMouseWheel; 22 this.camera.fieldOfView = Mathf.Clamp(this.camera.fieldOfView, near, far); 23 } 24 //鼠標右鍵實現視角轉動,類似第一人稱視角 25 if (Input.GetMouseButton(1)) 26 { 27 float rotationX = Input.GetAxis("Mouse X") * sensitivityX; 28 float rotationY = Input.GetAxis("Mouse Y") * sensitivityY; 29 transform.Rotate(-rotationY, rotationX, 0); 30 } 31 32 //鍵盤按鈕←和→實現視角水平旋轉 33 if (Input.GetAxis("Horizontal")!=0) 34 { 35 float rotationZ=Input.GetAxis("Horizontal") * sensitivetyZ; 36 transform.Rotate(0, 0, rotationZ); 37 } 38 } 39 }
直接把腳本拖到攝像機上就可以使用了~
