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键盘控制前后左右+空格键抬升高度”脚本

你好,请问在UNITY3D中如何实现用鼠标左键拖拽控制一个组合物体的旋转啊?

为啥unity3d进去之后没有鼠标?

[Unity3D 版本5.X]实现一个自由漫游的摄像机

Unity 3D 游戏开发Unity3D 入门 - 工作区域介绍 与 入门示例