Unity3D键盘+鼠标漫游脚本

原创 2016年10月30日 21:39:45

两个代码都附在MainCamera上面,可以实现键盘加鼠标漫游


1、KeyMove.cs  键盘漫游

using UnityEngine;
using System.Collections;

public class KeyMove : MonoBehaviour {

	void Start () {

	}
	void Update () {
		//前后左右
		if (Input.GetKey (KeyCode.A)) {
			transform.Translate (-25 * Time.deltaTime,0, 0 , Space.Self);
		}
		if (Input.GetKey (KeyCode.D)) {
			transform.Translate ( 25 * Time.deltaTime,0, 0 , Space.Self);
		}
		if (Input.GetKey (KeyCode.W)) {
			transform.Translate (0, 0, 25 * Time.deltaTime, Space.Self);
		}
		if (Input.GetKey (KeyCode.S)) {
			transform.Translate (0, 0 , -25 * Time.deltaTime,Space.Self);
		}
		//旋转
		if (Input.GetKey (KeyCode.Q)) {
			transform.Rotate (0, -25 * Time.deltaTime, 0, Space.Self);
		}
		if (Input.GetKey (KeyCode.E)) {
			transform.Rotate (0, 25 * Time.deltaTime, 0, Space.Self);
		}
		if (Input.GetKey (KeyCode.Z)) {
			transform.Rotate (-25 * Time.deltaTime,0, 0 , Space.Self);
		}
		if (Input.GetKey (KeyCode.C)) {
			transform.Rotate ( 25 * Time.deltaTime,0, 0 , Space.Self);
		}
		//升高降低镜头
		if (Input.GetKey (KeyCode.H)) {
			transform.Translate (0, 5 * Time.deltaTime, 0);
		}
		if (Input.GetKey (KeyCode.N)) {
			transform.Translate (0, -5 * Time.deltaTime, 0);
		}
	}
}

2、【转发】鼠标漫游

using UnityEngine;
using System.Collections;

public class FlyMove : MonoBehaviour {
	private float sensitivityX = 1F;		//X转动增量速度
	private float sensitivityY = 1F;		//y转动增量速度
	private float minimumY = -90F;			//Y轴转动限制
	private float maximumY = 90F;
	float rotationY = 0F;					//y起始值
	private float MovingSpeed = 1f;			//移动屏幕的速度
	float delta_x,delta_y,delta_z;			//计算移动量
	float distance = 5;						
	float ZoomSpeed = 20f;					//拉近拉远速度
	Quaternion rotation;

	void Start () {

	}

	void Update () {
		if(Input.GetMouseButton(0)){//左键旋转屏幕
			{
				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);
			}

		}
		if (Input.GetMouseButton(2)){

		}
		if(Input.GetAxis("Mouse ScrollWheel")!= 0){//滚轴拉近拉远
			delta_z = -Input.GetAxis("Mouse ScrollWheel") * ZoomSpeed;
			transform.Translate(0,0,-delta_z);
			distance += delta_z;
		}
		if (Input.GetMouseButton (2)) {//滚轴中间移动屏幕
			delta_x = Input.GetAxis("Mouse X") * MovingSpeed;
			delta_y = Input.GetAxis("Mouse Y") * MovingSpeed;
			rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y,0 );
			transform.position =rotation * new Vector3(-delta_x,-delta_y,0)+transform.position;
		}
	}
}




为什么operator=操作符返回引用

VCKBASE Online Help Journal No.10  为什么operator=操作符返回引用 赵湘宁 问题:        MSDN文档中解释到:operator=操作符缺省情况下返回...
  • ghj1976
  • ghj1976
  • 2001-04-03 18:07:00
  • 1521

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

我学习Unity3D一小段时间了,第一个制作目标就是实现一个自由漫游的摄像机。 使用WSAD键控制摄像机的上下左右移动,使用鼠标右键控制摄像机的旋转。 这个功能比较简单,代码也一目了然,不做过多解释了...
  • oilcode
  • oilcode
  • 2017-05-29 20:46:05
  • 3366

Unity中关于场景漫游的两个方法(一)

这里主要用到steamVR的两个插件 SteamVR Plugin 和 Vive-teleporter插件地址:SteamVR Plugin:steamVR PluginVive-teleporter...
  • a435931517
  • a435931517
  • 2017-08-29 16:17:26
  • 1026

Unity中关于场景漫游的两个方法(二)

第二个方法不仅不需要借助漫游插件实现漫游效果,而且还可以实现对物体的抓取,比第一种方法更加方便快捷。废话不多说,下面进入正题: 导入steamVR Plugin插件 steamVR Plugin可...
  • a435931517
  • a435931517
  • 2017-08-29 17:52:26
  • 1004

Unity3D学习笔记(二)创建地形和漫游

上一章粗略介绍了一下Unity游戏引擎的概念定义和界面功能,这次就来实践一下。我们的目标是没有蛀牙(误),目标是创建一个地形,上面有山脉和盆地,然后再放置一个人物,以第一人称的视角来漫游、观察我们所创...
  • yumendetuzi
  • yumendetuzi
  • 2016-04-28 10:18:27
  • 1159

Unity漫游项目经验分享

国庆,技术总监介绍了个漫游项目给我,由于公司的解散,没有做过漫游项目的我硬着头皮接下了,国庆在家里呆了不到两天就奔赴南京,在南京呆了八天,项目总算了结,带着微薄的定金和一张白条直接回到杭州。我收获其实...
  • yuanchunfa
  • yuanchunfa
  • 2012-10-28 13:19:27
  • 4367

unity3D漫游

  • 2013年06月27日 10:09
  • 11.63MB
  • 下载

unity3d 室内漫游源码

  • 2017年03月12日 21:07
  • 17.67MB
  • 下载

unity3d Game场景漫游脚本

using UnityEngine; using System.Collections; public class ScemeMove : MonoBehaviour { private Vect...
  • qq617119142
  • qq617119142
  • 2014-12-04 14:47:53
  • 2868

【Unity】 相机移动脚本

由于在项目制作中经常要对相机进行移动 所以采用了公司的工具类 CameraOrbit 和 CameraControl 在项目中需要添加 FingerGestures 插件 相机脚本是基于FingerG...
  • ldy597321444
  • ldy597321444
  • 2016-01-27 16:32:28
  • 3380
收藏助手
不良信息举报
您举报文章:Unity3D键盘+鼠标漫游脚本
举报原因:
原因补充:

(最多只允许输入30个字)