#唐老狮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);