码迷,mamicode.com
首页 > 其他好文 > 详细

09应用输入管理器转动场景--《程序员学Unity3d》

时间:2014-05-25 06:57:57      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:unity3d   程序员   游戏引擎   游戏开发   

为什么极品飞车等等游戏,都可以通过系统设置很方面地根据自己喜欢设置操作方式,有人喜欢用箭头来控制没有喜欢用用“W,S,A,D”来控制,这就说明了程序员不会把控制方式写死在程序里面,来看看Unity3d如何让用户可以随时修改“快捷键”。

优点:不仅方便后期维护,也可以减少很多代码。


Edit --Project Settings -- Input 打开输入管理器

 

bubuko.com,布布扣

前面17组是系统配置的,可以修改或删除。

Size改为18,新增一组。(名称为Test,对应按键为 a

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

在发布的程序中,如果要修改对应键,控制面板中默认显示该功能名为Name

若设置了正值描述名称,即显示功能名为该值。

负按键:比如正按键为 ,负按键为“S”。它们的返回值分别为1-1 。在代码区域进行判断,再实现不同的功能。

备选正负按钮:第二组实现与第一组功能相同的按钮。

则这两个键都可以实现同一功能。

脚本代码:

if (Input.GetButton("Test"))
        { 
        }
相当于:
        //if (Input.GetKey(KeyCode.A)) //不便于维护
        //{ 
        //}
Input.GetAxis("Test");//返回正负键值。正为,负为-1,没有按下为0


发布的程序,即可以随时修改对应键值

 bubuko.com,布布扣

转动场景

1.转动物体

首先创建一个输入管理器

 bubuko.com,布布扣

要实现ALeft 键向左转,DRight键向右转

创建一个物体和一个脚本,将脚本赋给物体。

void Update () {
        //Input.GetAxisRaw("TurnLeftOrRight") 当按下A或Left,返回;按下D或Right,返回-1;不按时返回。立即返回
        gameObject.transform.Rotate(0, Input.GetAxisRaw("TurnLeftOrRight") * 15 * Time.deltaTime, 0, Space.Self);//松口键时,立即停止
//这时将输入管理器的Sensitivity(灵敏度)由改为
        Input.GetAxis("TurnLeftOrRight");
        //这样返回值将是变化,例如按下A,将在一定时间内大概从->0.2->0.4…->1变化,这时松开键时,还是立即返回
        //这时将输入管理器的Gravity(重力灵敏度)由改为。
        //这样,松口按键时,返回值将由"终值"慢慢变化到
}


 

2.转动视觉

Type 类型,比如下面系统自带的鼠标横向滑动时。TypeMouse Movement ; Axis X axis

 bubuko.com,布布扣

……

0.1鼠标平移,镜头绕中心旋转

创建一个新的脚本

void Update () {
        gameObject.transform.Rotate(0, Input.GetAxis("Mouse X") * 10, 0, Space.Self);
}


注意不能只能把脚本扔给摄像机,因为上面的代码只改变Y轴的值

应该新创建一个空物体,让它的坐标为(0,0,0),然后让摄像机成为它的子物体!

将脚本扔给该空物体,即可实现该摄像机到中心点的距离不变,但随着中心点旋转。

0.2转动鼠标滚轮,镜头伸缩。

创建一个新的脚本,直接扔给摄像机。当镜头视觉对准物体时,Ctrl+Shift+F),摄像机的Z轴便是对准物体的,这时这需要移动摄像机改变Z轴的值,即可实现伸缩镜头效果。

 bubuko.com,布布扣

void Update () {
        gameObject.transform.Translate(0, 0, Input.GetAxis("Mouse ScrollWheel") * 100 *Time.deltaTime, Space.Self);
}



09应用输入管理器转动场景--《程序员学Unity3d》,布布扣,bubuko.com

09应用输入管理器转动场景--《程序员学Unity3d》

标签:unity3d   程序员   游戏引擎   游戏开发   

原文地址:http://blog.csdn.net/wowkk/article/details/26863767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!