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

Unity输入与控制

时间:2014-09-25 12:28:38      阅读:496      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   ar   for   div   sp   

主要概念:

  1.虚拟轴

  2.输入预先设置

示例:

通过键盘控制物体移动

 1 private float speed = 10.0F;    //速度
 2 
 3     private float rotaSpeed = 100.0F;   //旋转速度
 4 
 5     // Update is called once per frame
 6     void Update () {
 7 
 8         //获取垂直方向的虚拟轴,控制w,s
 9         float translation = Input.GetAxis("Vertical") * speed;
10 
11         //获取水平方向的虚拟轴,控制a,d
12         float rotation = Input.GetAxis("Horizontal") * rotaSpeed;
13 
14         //根据时差进行变幻
15         translation *= Time.deltaTime;
16         rotation *= Time.deltaTime;
17 
18         //进行变换
19         transform.Translate(0, 0, translation);
20         transform.Rotate(0,rotation,0);
21     }

 

主要注意 : 要使用

rotation *= Time.deltaTime;

等语句来获得与刷新的帧率无关的移动效果(平滑性)

 

3.键盘检测

GetKey和GetButton

GetKey两种方式:

if (Input.GetKey(KeyCode.UpArrow))
        {
            print("get up");
        }
if (Input.GetKey(“up”))
        {
            print("get up");
        }

GetButton的方式:

if(Input.GetButton("Fire1")){
            print("pressed Fire1");
        }

可知GetButton获取的是虚拟轴的名称

可用于检测单一键盘事件的发生;譬如射击

 

4.鼠标事件

检测单击事件:

if (Input.GetMouseButtonDown(0))
        {
            print("按下了左键");
        }

0-左键,1-右键,2-中键

 

检测长按事件:

if (Input.GetMouseButton(0))
        {
            print("按下了左键");
        }

 

检测按键释放:

if (Input.GetMouseButtonUp(0))
        {
            print("放开了左键");
        }

 

在GUI系统中可以按照如下进行双击检测

void OnGUI()
    {
        Event e = Event.current;
        if (e.isMouse && (e.clickCount == 2))
        {
            Debug.Log("双击了鼠标");
        }
    }

,使用的主要是GUI的事件机制。

 

OK.

Unity输入与控制

标签:style   blog   color   io   使用   ar   for   div   sp   

原文地址:http://www.cnblogs.com/lhyz/p/3992294.html

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