本文共 2660 字,大约阅读时间需要 8 分钟。
测试项目的时候经常用到的控制摄像头运动,简单的移动转向
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Controller : MonoBehaviour { private GameObject gameObject; float x1; float x2; float x3; float x4; void Start() { gameObject = GameObject.Find("Main Camera"); // Make the rigid body not change rotation if (GetComponent()) GetComponent ().freezeRotation = true; } // Update is called once per frame void Update() { //空格键抬升高度 if (Input.GetKey(KeyCode.Space)) { transform.position = new Vector3(transform.position.x, transform.position.y + 1, transform.position.z); } //w键前进 if (Input.GetKey(KeyCode.W)) { this.gameObject.transform.Translate(new Vector3(0, 0, 50 * Time.deltaTime)); } //s键后退 if (Input.GetKey(KeyCode.S)) { this.gameObject.transform.Translate(new Vector3(0, 0, -50 * Time.deltaTime)); } //a键后退 if (Input.GetKey(KeyCode.A)) { this.gameObject.transform.Translate(new Vector3(-10, 0, 0 * Time.deltaTime)); } //d键后退 if (Input.GetKey(KeyCode.D)) { this.gameObject.transform.Translate(new Vector3(10, 0, 0 * Time.deltaTime)); } if(Input.GetKey(KeyCode.Mouse0)) { if (axes == RotationAxes.MouseXAndY) { float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX; rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationY = Mathf.Clamp(rotationY, minimumY, maximumY); transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0); } else if (axes == RotationAxes.MouseX) { transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0); } else { rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationY = Mathf.Clamp(rotationY, minimumY, maximumY); transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0); } } } public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 } public RotationAxes axes = RotationAxes.MouseXAndY; public float sensitivityX = 15F; public float sensitivityY = 15F; public float minimumX = -360F; public float maximumX = 360F; public float minimumY = -60F; public float maximumY = 60F; float rotationY = 0F;}
转载于:https://blog.51cto.com/13638120/2084937