Input鼠标键盘输入

鼠标输入:


屏幕坐标的原点是在屏幕的左下角,往右是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这三个整数,不会有小数。

猜你喜欢

转载自blog.csdn.net/qlxjs/article/details/127144612