Input鼠标键盘输入

简介: 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这三个整数,不会有小数。

目录
相关文章
|
5月前
|
监控 网络架构 Windows
键盘没有pause break,该怎么办?
键盘没有pause break,该怎么办?
|
6月前
|
JavaScript
原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
input中placeholder的鼠标操作事件
input中placeholder的鼠标操作事件
72 0
input里按回车键会刷新页面 怎么办
input里按回车键会刷新页面 怎么办
447 0
|
程序员 C++ Windows
模拟键盘按键 自动输入文字
对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在DOS系统下的ASCII码,在Windows系统下的虚拟键盘码等等。
|
JavaScript
input 每输入一次都会失去焦点需要再次点击才能输入
出现上述问题其实就是遍历的时候key值绑定的不合理
298 0
|
数据可视化 计算机视觉 Windows
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
qml开发笔记(七):输入元素鼠标输入MouseArea和键盘输入Keys
C++ 输入按键名按下对应按键
C++ 输入按键名按下对应按键
175 0