unity3d input输入

Input 输入

 

按键

Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住键盘上键

Input.GetKeyDown (“up”) 按下键盘上键

Input.GetKeyUp (“up”) 放开键盘上键

 (KeyCode.UpArrow)为键码 

Input.GetButton(“ ”) = Input.GetKey(“ ”) 两种几乎相同(目前没发现差异)

Input.GetButton一样会有分Input.GetButtonDown & Input.GetButtonUp

(“ ”)符号内为按键英文~ 参考Unity→Edit→Project Settings→Input(可新增)

PS : Unity内并没有内建android(返回与选单)功能键设定,必须使用者自行设定,在Inpu.GetButton(“ ”)中”escpae”&”menu”有对应返回与选单键

例: if(Input.GetKeyDown (“escpae”)){ Application.Quit(); } 按下返回就退出

 

滑鼠用

Input.GetMouseButton(0) 当0键被按住持续侦测(包含down和up各一次)

Input.GetMouseButtonDown(0) 当0键被按下一次

Input.GetMouseButtonUp(0) 当0键放开一次

键 : 0=左 1=中 2=右

PS : Unity有对应滑鼠左键输入功能部分可以用在Android手指触碰的操作上

 

获取轴

Input.GetAxis(“ ”) ~ (“ ”)参考Unity→Edit→Project Settings→Input(可新增)

根据座标轴传回虚拟座标值,取得输入装置输入时值范围-1 ~ 1

例: Input.GetAxis(“Mouse x”) ~ 可取得滑鼠横向移动增量

 

Android 常用 Input

 

触碰

Input.touchCount ~ 触碰数量

Input.GetTouch(0) ~ 当第一支手指触碰时

0=第一支1=第二支2=第三支以此类推(触碰到点的侦测数量上限未测不知)

TouchPhase ~ 触碰状态有分五种Began Moved Stationary Ended Canceled

Began按下Moved移动Stationary按住没移动Ended离开

Canceled用于触碰超过5点以上或贴至脸上时取消追踪

Input.GetTouch(0).position 取得第一支手指触碰座标

 

例 :

Touch 单点移动判断式

if(Input.touchCount == 1 && Input.GetTouch(0).phase==TouchPhase.Moved){执行}

(触碰数量为1个) 和(第一支手指触碰时的状态为移动) 时{执行}

 

Touch 双点移动判断式

if(Input.touchCount >1){

 if(Input.GetTouch(0).phase==TouchPhase.Moved || Input.GetTouch(1).phase==TouchPhase.Moved){ 执行}}

(触碰数量超过1个) 和

 (第一支手指触碰时的状态为移动)或着(第二支手指触碰时的状态为移动) 时{执行}

 

Input.GetTouch(0) 和 Input.GetMouseButton(0)

单点时大致上互通(不确定是否完全相同)

多点上就会出现差异Touch会取手指前后顺序Mouse会取中心点








如上图,就是Unity为游戏软体受命于玩家控制的操作转化中心。大家看到了默认是17个。

要查看和编辑这些设置,可以点击名称旁边的小箭头。先解释一下吧:

Name:【按键名】该键的名称,可以在脚本编程中直接引用他。比如:Input.GetButtonDown(“Jump”);

Descriptive Name:【描述名】在游戏的独立机构中的配置对话框中,当控制值为正时候所显示的名称。默认空白。

Negative Descriptive Name:【负描述】在游戏的独立机构中的配置对话框中,当控制值为负的时候所显示的名称。

Nagative Button:【负向按钮】玩家按下这个按钮来让被控制物体向负方向运动。

Positive Button:【正向按钮】玩家按下这个按钮让被控制物体向正方向运动。

Alt Negative Button: 玩家可以使用的备选负向按钮,比如方向键和WASD

Alt Positive Button:玩家可以使用的备选争相按钮。

Gravity:【重力】如果玩家停止输入,该轴将恢复到空挡或0速度,其单位为单位每秒。

Dead:【盲区】可以用在模拟控制。在模拟控制器上,在这个范围内的任何值都会映射到空档不会提供任何输入。

Sensitivity:【灵敏度】可以用于数字控制,他是该轴向给定得值移动的速度。正负都可,单位为单位每秒。

Snap:【对齐】如果选中,可以确保在同时按下正向和负向按钮时候该轴的值为空挡。

Invert:【反转】迅速交换正向和负向控制键。

Type:【类型】该键对应的输入设备类型。可以为Key,MouseButton,MouseMove,JoystickAxis,或Window Movement。

Axis:【轴】这个控制方式有该输入设备的哪条轴指挥。这可受不同游戏手柄影响。

JoyNum:【操作杆编号】多个操作杆在机器上市后,决定哪个哪个操作杆控制给定的轴。可以选择从所有的操作杆接受输入,或是为其制定一个特定的。

 

你需要关注的就是这些。下面说说Input类:

GetAxis();返回制定轴得值。

GetButton():如果制定的按钮按下,返回True。

GetKey():如果制定按键按下返回True。

GetMouseButton():制定鼠标按钮按下返回True。

ResetInputAxis():使用这个函数可以重置虽有输入,并把他们护肤到空挡或0.

anyKey:任意键按下返回True。比如:按任意键继续。

MousePisition:使用向量来保存鼠标在屏幕上当前位置。屏幕左下角映射为(0,0);

 

先说这些吧。看看Input的API吧。Xbox的风格也是不一样的。自己看吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值