鼠标输入:
屏幕坐标的原点是在屏幕的左下角,往右是X轴正方向,往上是Y轴正方形。通过
print(Input.mousePosition);
命令可以在控制台中查看鼠标在屏幕上的位置,控制台上的返回值Vector3只有X和Y的值,没有Z的值,是因为屏幕本来就是2D的,所以不存在Z轴这一概念。
如何用代码实现检测鼠标的输入呢,我们可以通过if语句来判断:
如果想要检测鼠标按下的一瞬间进入可以使用以下代码:
If(Input.GetMouseButtonDown(0))//0用来测试左键,1用来测试右键,2用来测试鼠标的中键 {print(“鼠标的某个键被按下了”);}
如果想要检测鼠标抬起的一瞬间进入可以使用以下代码:
If(Input.GetMouseButtonUp(0))//0用来测试左键,1用来测试右键,2用来测试鼠标的中键 {print(“鼠标的某个键被抬起了”);}
如果想要检测鼠标长按按下的时候都会进入可以使用以下代码:
If(Input.GetMouseButton (0))//0用来测试左键,1用来测试右键,2用来测试鼠标的中键 {print(“鼠标的某个键被长按了”);}
我们可以通过print(Input.mouseScrollDelta)命令在控制台中查看鼠标的中键的滚动状态,如果控制台上显示的是(0,1,0)则是向上滚动;如果控制台上显示的是(0,0,0)则是没有滚动;如果控制台上显示的是(0,-1,0)则是向下滚动。
键盘输入:
键盘的输入与鼠标的输入差距不大,都是通过状态来查看是否达到效果
如果想要检测键盘的某个键是否被按下可以使用以下代码:
If(Input.GetKeyDown(KeyCode.w)) {print(“W键被按下了”);}
或者
If(Input.GetKeyDown(“w”))//引号内的字符串必须是小写的,不然会报错 {print(“W键被按下了”);}
如果想要检测键盘的某个键是否被抬起可以使用以下代码:
If(Input.GetKeyUp(KeyCode.w)) {print(“W键被抬起了”);}
如果想要检测键盘的某个键是否被长按可以使用以下代码:
If(Input.GetKey(KeyCode.w)) {print(“W键被长按了”);}
我们通过鼠标键盘的输入可以达到控制玩家的效果,比如基础的移动,跳跃之类等等,并且Unity中提供了更为方便的方法来帮助我们实现控制对象的目的,即默认轴。
默认轴的使用方法也不难,如果想要在鼠标横向移动时,获得-1到1之间的变换,可以使用以下代码来获得这个值。
Print(Input.GetAxis(“Mouse X”));
同理如果想要在鼠标纵向移动时,获得-1到1之间的变换,可以使用以下代码来获得这个值。
Print(Input.GetAxis(“Mouse Y”));
如果想要在键盘A键和D键被按下时,获得-1到1之间的变换,可以使用以下代码来获得这个值。
Print(Input.GetAxis(“Horizontal”));
此时我们就可以通过它来控制对象的左右移动或者左右旋转;同理如果想要在键盘S键和W键被按下时,获得-1到1之间的变换,可以使用以下代码来获得这个值。
Print(Input.GetAxis(“Vertical”));
此时我们就可以通过它来控制对象的上下移动或者上下旋转。
我们默认的GetAxis方法返回的值是在-1~1之间慢慢的变化,而GetAxisRaw方法虽然和GetAxis方法的使用方式相同,但是它的返回值只会是-1、0、1这三个整数,不会有小数。