Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
Posted LisenYang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本相关的知识,希望对你有一定的参考价值。
C#控制WASD键盘前后左右及空格键抬升高度脚本代码如下:
using UnityEngine;
using System.Collections;
public class CameraControl : MonoBehaviour
// Use this for initialization
private GameObject gameObject;
float x1;
float x2;
float x3;
float x4;
void Start ()
gameObject = GameObject.Find ("Main Camera");
// 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));
JS控制鼠标移动视角代码如下:
using UnityEngine;
using System.Collections;
[AddComponentMenu("Camera-Control/Mouse Look")]
public class MouseLook : MonoBehaviour
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;
void Update ()
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);
void Start ()
// Make the rigid body not change rotation
if (GetComponent<Rigidbody>())
GetComponent<Rigidbody>().freezeRotation = true;
以上是关于Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本