1078人加入学习
(2人评价)
【英宝通Unity4.0公开课】第七课:输入与控制
价格 ¥ 9.90
会员免费学 购买课程

Descriptive Name 定义虚拟轴的名字。inputmanager主要是用于输入事件的。

Negative:输出-1 postive:输出1.代表两个相反的数值

gravity:按钮恢复数值。 Dead:小于此数值按钮已经复位 snap:同时按下数值时

Invest:转换Negative与positive的数值。

[展开全文]

getkey 参数形式 1.直接使用规范名字 2,引用按键函数。

getbutton 适用于事件按键

getkey 按住会一直反馈

getkengdown 按住只会反馈一次

[展开全文]

0左键 1右键 2中建

双击检测

var e:Event = event.curren

e.isMouse && e.clickCount ==2

[展开全文]

input类

edit-project setting-input

虚拟轴用于物体的移动

getButton

getKey一般用于事件监听

 

[展开全文]

getAxis  获取虚拟轴的数值

相当于摇杆的控制

Input.Axis

horizontal属性

默认左负右正

gravity数值越大操作后复位的速度越快

snap打开可以模拟同时按下左右时输出为0

invert反值

允许使用同名的虚拟轴,也可自定义虚拟轴

 

[展开全文]

GetAxis返回的是一个数值1或-1

GetButton返回的是一个True或是False的值

[展开全文]

Input.GetMouseButtonDown(int key)按下

0左键

1右键

2中键

Input.GetMouseButton(int key)长按

Input.GetMouseButtonUp(int key)抬起


OnGUI中通过Event.current来检测鼠标事件

[展开全文]

transform.Translate移动

transform.Rotate旋转

GetButton检测按键GetAxis检测按键数字范围

GetKey长按GetKeyDown单次按瞬间为真

[展开全文]

GetMouseButtonDown 鼠标一次按下响应事件

GetMouseButton 鼠标常按响应事件

GetMouseButtonUp 鼠标抬起响应事件

0: 表示鼠标左键

1: 表示鼠标右键

2: 表示鼠标中键



[展开全文]

鼠标检测

 

 

GetMouseButton()

.......Down()

........Up()

 

 

0 左键 1右键 2中键

 

 

如:

 

 

#pragma strict

function Start () {

}

function Update () {
	if(Input.GetMouseButtonDown(0))
	{
		Debug.Log("您在_"+Time.time+"时,按下了鼠标左键");
	}
	if(Input.GetMouseButtonDown(1))
	{
		Debug.Log("您在_"+Time.time+"时,按下了鼠标右键");
	}
	if(Input.GetMouseButtonDown(2))
	{
		Debug.Log("您在_"+Time.time+"时,按下了鼠标中键");
	}
	if(Input.GetMouseButton(2))
	{
		Debug.Log("您在_"+Time.time+"时,一直按下了鼠标中键");
	}
}
 
 
 
 
 
GUI系统的事件机制:
检测鼠标
 
function OnGUI ()  //会输出多次  对于GUI的事件来说 它在一帧中可能执行多次 导致GUI函数在一帧中执行多次
{
	var e : Event = Event.current;           
	if(e.button == 0 && e.isMouse)
	{
		Debug.Log("鼠标左键按下");
	
	}
	else if(e.button == 1)
	{
		Debug.Log("右键");
	
	}
	else if(e.button == 2)
	{
		Debug.Log("中键");
	
	}
	else if(e.button > 2)
	{
		Debug.Log("鼠标中其他按键被按下");         //当鼠标中存在多个按键时
	
	}

}
 
 
系统还提供了一个计数变量clickCount
可以来确认单击还是双击
function OnGUI ()
{
	var ee: Event = Event.current;
	if(ee.isMouse && ee.clickCount == 2)
	{
		print("用户双击了鼠标");
	
	}

}
 
 
 
[展开全文]

虚拟轴的应用

U定义的命名规范

见文档图片

 

 

其他类函数

 

GetButton()  //常用于事件性的虚拟轴 如Fire 只对应单一按键

使用按钮的名称 一般都是指虚拟轴的名称

Input.GetButtonDown("Fire1")

&&GetAxis()  //常用于一个按键轴

 

GetKey() 的两种参数形式:  

 #1使用按键名称的字符串

Input.GetKey("up")

 #2 利用 KeyCode

Input.GetKey(KeyCode.UpArrow)

 

 

GetButtonDown()

按键被按下

GetButtonUp()

按钮被抬起

GetKey() //常按时间

GetKeyDown() GetKeyUp()  //按住不抬起只返回一次

 

function Update () {
	if(Input.GetKey("a"))
	{
		print("A键被按下");

	}
	if(Input.GetKeyDown("b"))
	{
		print("B键被按下一次");

	}
}

 

 

 

[展开全文]

Input类

变量:

如mousePosition.....

函数:

GetButton()......

 

 

 

虚拟轴:(定义在输入管理器)

名称: 可以直接引用

描述性名称:描述

负方向按钮(返回-1)

正方向按钮(返回1)

(成对的按钮设置轴的正负向)

另一对替换按钮

重力:定义按键恢复到正常位置的恢复速度 数值越大 恢复越快

Dead:小于此数值时 认为按键已经复位

Sensitivity: 用于数字设备中,由当前数值转换为目标数值时的速度

Snap:正负向同时按下时模拟复位状态

Invert:交换正负向

Type:使用哪些输入设备   按键 鼠标 游戏杆....

轴:定义虚拟轴的方向

游戏杆的名称:从哪些游戏杆中获取输入

 

 

可以让多个虚拟轴使用相同的名称

比如其中一个用来检测游戏杆、另一个用来检测键盘的输入

系统会自动分辨

 

如:

value = Input.GetAxis ("Horizontal");

[展开全文]