Appearance
输入管理
键鼠输入
输入控制大致可以分为三种:键鼠、虚拟轴、手机触摸
键鼠中的输入控制是通过Input类进行管理的
属性方法 | 详解 |
---|---|
anyKey | 任何按键按下都返回true |
anyKeyDown | 任何按键按下第一帧都返回true |
InputString | 该帧的键盘输入 |
mousePosition | 鼠标指针当前的坐标位置 |
GetKey | 按下按键瞬间返回true |
GetKeyDown | 按下按键瞬间返回一次true |
GetKeyUp | 抬起按键瞬间返回一次true |
GetMouseButton | 按下鼠标键返回true |
GetMouseButtonDown | 按下鼠标键瞬间返回一次true |
GetMouseButtonUp | 抬起鼠标瞬间返回一次true |
csharp
// 用例
void Update(){
if(Input.GetKeyDown(KeyCode.A)){
Debug.Log("按下了A键");
}
}
轴输入
需要在Unity引擎中找到"编辑>项目设置>Input Manager",然后将其中的轴进行设置。
虚拟轴 | 名称 | 详解 |
---|---|---|
水平 | Horizontal | 水平轴,对应于键盘A/D键,←/→键 |
垂直 | Vertical | 垂直轴,对应于键盘W/S键,↑/↓键 |
鼠标X | MouseX | 鼠标沿x轴方向移动 |
鼠标Y | MouseY | 鼠标沿y轴方向移动 |
鼠标滚轮 | MouseScrollWheel | 鼠标滚轮滚动 |
csharp
// 用例
void Update(){
// 轴的正向会返回1,负向会返回-1,未触发轴的时候返回0
float horizontal = Input.GetAxis("Horizontal");
Debug.Log(horizontal);
}
- 如果虚拟轴只设置了一个按键,则虚拟轴转变为虚拟按键。
虚拟轴 | 名称 | 详解 |
---|---|---|
Fire1 | Fire1 | 鼠标左键或左Ctrl键 |
Fire2 | Fire2 | 鼠标右键或左Alt键 |
Fire3 | Fire3 | 鼠标滚轮或左Shift键 |
跳跃 | Jump | Space键 |
提交 | Submit | Return键 |
取消 | Cancel | Escape键 |
- 手机触摸
手机与其他不同点在于可以支持多点触摸。
csharp
// 用例
void Start()
{
// 开启多点触摸
Input.multiTouchEnabled = true;
}
void Update(){
// 判断单点触摸
if(Input.touchCount == 1){
// 触摸位置
Debug.Log(Input.touches[0].position);
}
// 触摸阶段
switch(Input.touches[0].phase){
case TouchPhase.Began:
Debug.Log("开始触摸");
break;
case TouchPhase.Moved:
Debug.Log("触摸中并且在移动");
break;
case TouchPhase.Ended:
Debug.Log("触摸结束");
break;
case TouchPhase.Canceled:
Debug.Log("触摸取消");
break;
case TouchPhase.Stationary:
Debug.Log("触摸但未移动");
break;
}
}
// 判断多点触摸,如两点触摸
if(Input.touchCount == 2){
// 两个点触摸位置
Debug.Log(Input.touches[0].position);
Debug.Log(Input.touches[1].position);
}