obsidian/笔记文件/2.笔记/Unity Input输入类.md
2025-03-26 00:02:56 +08:00

88 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#unity/日常积累
Input类用于处理玩家的键盘、鼠标、游戏杆等的输入操作
Input.anyKey
返回值是bool型。
如果按住输入设备的任意键则会一直返回true否则一直返回false
例如键盘的任意按键和鼠标的左键、右键、中键等,都包含在其中。
如果只是按下一下之后马上松开则按下的瞬间会返回true松开后会一直返沪false
Input.GetKey(KeyCode 键位)
Input.GetKey(string 键位)
返回值是bool型。
如果按住键盘或游戏杆的对应键位则会返回true一旦处于松开状态则会返回false
Input.GetKeyDown(KeyCode 键位)
Input.GetKeyDown(string 键位)
返回值是bool型。
如果按下键盘或游戏杆的对应键位则这一瞬间会返回true但如果按住这个键又或者这个键处于松开状态则会返回false
Input.GetKeyUp(KeyCode 键位)
Input.GetKeyUp(string 键位)
返回值是bool型。
如果键盘或游戏杆的对应键位从按下状态变为松开状态的一瞬间会返回true其余情况一律返回false
KeyCode型枚举和string型的按键名可以参考对应的笔记。
鼠标键位:
Mouse0 鼠标左键 Mouse1 鼠标右键 Mouse2 鼠标中键 Mouse3 鼠标第3个按键
Mouse4 鼠标第4个按键 Mouse5 鼠标第5个按键 Mouse6 鼠标第6个按键
键位可以在Edit——Project Settings中查看
Input.GetMouseButton(int 鼠标按键)
返回值是bool型。
如果按住鼠标的指定键则会返回true一旦处于松开状态则会返回false
Input.GetMouseButtonDown(int 鼠标按键)
返回值是bool型。
如果按下鼠标的指定键则这一瞬间会返回true但如果按住这个键又或者这个键处于松开状态则会返回false
Input.GetMouseButtonUp(int 鼠标按键)
返回值是bool型。
如果鼠标的指定键在一瞬间从按下状态变成松开状态则会返回true否则返回false
int型的鼠标按键
0表示鼠标左键
1表示鼠标右键
2表示鼠标中键
Input.GetButtonDown(string 轴名)
返回bool型。
如果按下指定的按键则这一瞬间会返回true但如果按住这个键又或者这个键处于松开状态则会返回false
Input.GetButtonUp(string 轴名)
返回bool型。
如果指定的按键从按下状态变为松开状态的一瞬间会返回true其余情况一律返回false
Input.GetButton(string 轴名)
返回bool型。
如果按住指定的按键则会返回true一旦处于松开状态则会返回false
Input.GetButtonXXX方法与以下的Input.GetAxisXXX方法的参数中的轴名都可以在Edit——Project Settings——Input Manager中设置。Name代表轴名Positive Button、Alt Positive Button分别代表两个正键Negative Button、Alt Negative Button分别代表两个反键Sensitivity代表敏感度。
Input.GetButtonXXX方法与以下的Input.GetAxisXXX方法的区别在于返回值类型的不同Input.GetButtonXXX返回bool型表示是否按下了指定按键而Input.GetAxisXXX方法返回float型表示指定按键的按下程度。
Input.GetAxis(string 轴名)
返回float型。轴名默认情况一般用Horizontal或Vertical。以Horizontal为例
当按下水平负方向的键,则返回[-1,0)之间的一个值,一直按住这个键,则值会越来越小,最后到达-1为止。
当按下水平正方向的键,则返回(0,1]之间的一个值一直按住这个键则值会越来越大最后到达1为止。
松开按住的键则返回值会越来越趋向0最后等于0
这个方法可以用来模拟先加速后减速的情况
Input.GetAxisRaw(string 轴名)
返回float型。轴名默认情况一般用Horizontal或Vertical。以Horizontal为例
当按下水平负方向的键,则返回-1一直按住这个键就会一直返回-1
当按下水平正方向的键则返回1一直按住这个键就会一直返回1
松开按住的键则会一直返回0
Input.mousePosition
屏幕左下角坐标为 (0,0,0)。 屏幕或窗口的右上角坐标为 (Screen.width,Screen.height,0)。鼠标光标隐不隐藏不会影响这个参数的值。如果位置值小于0或大于屏幕尺寸 (Screen.width,Screen.height,0),则说明鼠标光标位于游戏窗口以外。
Input.mousePosition.x表示Input.mousePosition的x分量
Input.mousePosition.y表示Input.mousePosition的y分量
Input.mousePosition.z表示Input.mousePosition的z分量