unity 输入相关Input

#唐老狮unity入门教程课堂笔记#

注意: 输入相关的肯定是写在Update方法里

鼠标在屏幕的位置

屏幕坐标的原点 是在 屏幕的左下角 往右是 x轴正方向 往上是y轴正方向
返回值是 Vector3 但是只有 x y,z一直是0 ,因为屏幕是2D的

print(Input.mousePosition);     // 输出鼠标的位置信息

检测鼠标输入

鼠标按下一瞬间 进入
0 左键

1右键

2 中键
只要按下的一瞬间 进入一次

if (Input.GetMouseButtonDown(0))
{
    print("鼠标按下了");
}

鼠标抬起一瞬间 进入

if (Input.GetMouseButtonUp(0))
{
    print("鼠标抬起了");
}

鼠标长按(按下抬起都有)都会进入
当按下按键不放时 会一直进入 这个判断

if (Input.GetMouseButton(0))
{
    print("鼠标按下");
}

中键滚动
返回值 y --- 1 往下滚  

            y --- 1 往上滚  

            y --- 0 没有滚动
它的返回值 是 Vector的值 我们鼠标中键滚动时,会改变其中的y值

print(Input.mouseScrollDelta);

检测键盘输入

键盘按下

if (Input.GetKeyDown(KeyCode.W))
{
   print("按下了W");
}

传入字符串的重载
这里传入的 字符串 不能是大写的 不然会报错
只能传入小写字符串

if (Input.GetKeyDown("q"))
{
   print("按下了Q");
}

键盘抬起

if (Input.GetKeyUp(KeyCode.Space))
{
    print("抬起空格键");
}

长按

if (Input.GetKey(KeyCode.G))
{
    print("长按G"); 
}

检测默认轴输入

我们学习鼠标 键盘输入 主要是用来 控制玩家 比如 旋转 位移
unity 提供了更方便的方法 来帮助我们控制 对象的 位移和旋转

按下AD键时 返回 -1 到1之间的变换
相当于 得到这个值 就是我们的
左右方向 我们可以通过它来控制 对象左右移动 或者左右旋转

print(Input.GetAxis("Horizontal"));  // Input.GetAxis("Horizontal")返回的是float类型的值
float h = Input.GetAxis("Horizontal"); // 用一个float类型的变量来存储它

按下键盘 WS键 返回 -1 到1 之间的值 (float类型
相当于 得到这个值 就是我们的上下方向 我们可以通过它来控制 对象上下移动 或者上下旋转

print(Input.GetAxis("Vertical"));
float v = Input.GetAxis("Vertical"); // 用一个float类型的变量来存储它

鼠标横向移动时 -1 到1 左 右

print(Input.GetAxis("Mouse X"));

鼠标竖向移动时 -1 到 1 下上

print(Input.GetAxis("Mouse Y"));

GetAxisRaw方法 和GetAxis使用方式相同
只不过 GetAxisRaw方法 它的返回值只会是 -1 0 1 ,没有中间值,没有小数

是否有任意键或鼠标长按

if (Input.anyKey)
{
    print("有任意键长按");
}
if (Input.anyKeyDown)
{
    print("有任意键按下");
}
print(Input.inputString);   // 这一帧键盘的输入

手柄输入相关

得到连接的手柄的所有按钮名字

string[] strs = Input.GetJoystickNames();

某一个手柄键按下

if (Input.GetButtonDown("Jump"))
{

}

某一个手柄键抬起

if (Input.GetButtonUp("Jump"))
{

}

某一个手柄键长按

if (Input.GetButton("Jump"))
{

}

移动设备触摸相关

if (Input.touchCount > 0)
{
    Touch t1 = Input.touches[0];
    // 位置
    print(t1.position);
    // 相对上次位置的变化
    print(t1.deltaPosition);
}

是否启用多点触控

Input.multiTouchEnabled = false;    // 不启用

陀螺仪(重力感应)

print(Input.gyro.gravity);

旋转速度

print(Input.gyro.rotationRate);

陀螺仪 当前旋转四元数
比如 用这个角度信息 来控制 场景上的一个3D 物体受到重力影响
手机怎么动 它怎么动

print(Input.gyro.attitude);

猜你喜欢

转载自blog.csdn.net/m0_73113333/article/details/142766748