首页 > 代码库 > Unity输入与控制
Unity输入与控制
主要概念:
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,d12 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输入与控制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。