注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

转:Unity3D键盘+鼠标漫游脚本  

2017-04-06 10:23:00|  分类: U3D |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

转自:http://blog.csdn.net/asc2046/article/details/52974543

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


1、KeyMove.cs  键盘漫游

[csharp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class KeyMove : MonoBehaviour {  
  5.   
  6.     void Start () {  
  7.   
  8.     }  
  9.     void Update () {  
  10.         //前后左右  
  11.         if (Input.GetKey (KeyCode.A)) {  
  12.             transform.Translate (-25 * Time.deltaTime,0, 0 , Space.Self);  
  13.         }  
  14.         if (Input.GetKey (KeyCode.D)) {  
  15.             transform.Translate ( 25 * Time.deltaTime,0, 0 , Space.Self);  
  16.         }  
  17.         if (Input.GetKey (KeyCode.W)) {  
  18.             transform.Translate (0, 0, 25 * Time.deltaTime, Space.Self);  
  19.         }  
  20.         if (Input.GetKey (KeyCode.S)) {  
  21.             transform.Translate (0, 0 , -25 * Time.deltaTime,Space.Self);  
  22.         }  
  23.         //旋转  
  24.         if (Input.GetKey (KeyCode.Q)) {  
  25.             transform.Rotate (0, -25 * Time.deltaTime, 0, Space.Self);  
  26.         }  
  27.         if (Input.GetKey (KeyCode.E)) {  
  28.             transform.Rotate (0, 25 * Time.deltaTime, 0, Space.Self);  
  29.         }  
  30.         if (Input.GetKey (KeyCode.Z)) {  
  31.             transform.Rotate (-25 * Time.deltaTime,0, 0 , Space.Self);  
  32.         }  
  33.         if (Input.GetKey (KeyCode.C)) {  
  34.             transform.Rotate ( 25 * Time.deltaTime,0, 0 , Space.Self);  
  35.         }  
  36.         //升高降低镜头  
  37.         if (Input.GetKey (KeyCode.H)) {  
  38.             transform.Translate (0, 5 * Time.deltaTime, 0);  
  39.         }  
  40.         if (Input.GetKey (KeyCode.N)) {  
  41.             transform.Translate (0, -5 * Time.deltaTime, 0);  
  42.         }  
  43.     }  
  44. }  

2、【转发】鼠标漫游

[csharp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class FlyMove : MonoBehaviour {  
  5.     private float sensitivityX = 1F;        //X转动增量速度  
  6.     private float sensitivityY = 1F;        //y转动增量速度  
  7.     private float minimumY = -90F;          //Y轴转动限制  
  8.     private float maximumY = 90F;  
  9.     float rotationY = 0F;                   //y起始值  
  10.     private float MovingSpeed = 1f;         //移动屏幕的速度  
  11.     float delta_x,delta_y,delta_z;          //计算移动量  
  12.     float distance = 5;                       
  13.     float ZoomSpeed = 20f;                  //拉近拉远速度  
  14.     Quaternion rotation;  
  15.   
  16.     void Start () {  
  17.   
  18.     }  
  19.   
  20.     void Update () {  
  21.         if(Input.GetMouseButton(0)){//左键旋转屏幕  
  22.             {  
  23.                 float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;  
  24.   
  25.                 rotationY += Input.GetAxis("Mouse Y") * sensitivityY;  
  26.                 rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);  
  27.   
  28.                 transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);  
  29.             }  
  30.   
  31.         }  
  32.         if (Input.GetMouseButton(2)){  
  33.   
  34.         }  
  35.         if(Input.GetAxis("Mouse ScrollWheel")!= 0){//滚轴拉近拉远  
  36.             delta_z = -Input.GetAxis("Mouse ScrollWheel") * ZoomSpeed;  
  37.             transform.Translate(0,0,-delta_z);  
  38.             distance += delta_z;  
  39.         }  
  40.         if (Input.GetMouseButton (2)) {//滚轴中间移动屏幕  
  41.             delta_x = Input.GetAxis("Mouse X") * MovingSpeed;  
  42.             delta_y = Input.GetAxis("Mouse Y") * MovingSpeed;  
  43.             rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y,0 );  
  44.             transform.position =rotation * new Vector3(-delta_x,-delta_y,0)+transform.position;  
  45.         }  
  46.     }  
  47. }  
  评论这张
 
阅读(15)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017