Unity Input

Unity支持最常见的游戏输入设备类型,(如鼠标,键盘,游戏手柄等)同时还支持触摸屏和移动设备的感知能力。

Input包含于UnityEngine命名空间中,输入系统的接口。

通过这个类可以读取传统游戏输入中设置的轴,还可以可访问移动设备的多点触摸或加速感应数据。

使用输入读取轴GetAxis可读取一下默认轴名:Horizontal 和Vertical表示水平垂直映射到操纵杆,A,W,S,D和箭头键。“Mouse X"和”Mouse Y"映射到鼠标。“Fire1“,"Fire2", "Fire 3"被映射到Ctrl,Alt,Cmd键和三个鼠标或操纵杆按钮。可以添加新的输入轴,详细可以参阅输入管理器。 UnityEdit>>ProjectSetting>>Input 。

如果你使用输入来进行任何类型的运动行为,可以使用Input.GetAxis它可以给你带来平滑的和可配置的输入,可以映射到键盘,操纵杆或鼠标。可将GetButton视为事件之类的动作,最好不要用它来进行移动。使用GetAxis可将脚本代码更小和简单。

IOS 和Android 设备能够同时跟踪多个手指触摸屏幕。通过访问输入,你可以在最后一帧访问每个手指触摸屏幕的状态数据,触动属性数组。

当设备移动时,其硬件加速度计会报告沿三维空间的三个主轴的线性加速度变化。你可以使用这些数据来检测设备的当前方向(相对于地面)。

沿每个轴的加速度由硬件直接报告重力值。值1.0表示沿给定轴的负载大约+1g。值-1.0表示-1g.如果你将设备直立(底部有home键)放在你面前。x轴沿着右边是正的,y轴向上是正的,z轴正方向指向你。

静态属性

acceleration  最后测量到的三维空间设备的线性加速度(只读)

using UnityEngine;
PUblic class Example:MonoBehavier
{
   //Move object using accelerometer
   float speed = 10.f;
  void Update()
 {
    Vector3  dir = Vector3.zero;
    // we assume that device is held parallel to the ground 
    // and Home button is in the right hand
    // remap device acceleration axis to game coordinates:
    // 1) XY plane of the device is mapped onto XZ plane 
    // 2) rotated 90 of degree around Y axis 
    dir.x = -Input.acceleration.Y;
    dir.z = Input.acceleration.X;
    // clamp acceleration vector to unit sphere
    if (dir.sqrMagnitude >1)
    dir.Normalize();
    // make it move 10 meters per second instead of 10 meters per fram....
    dir *= Time.delta.time;
    // Move object
    transform.Translate(dir*speed);
 
 }
}

accelerationEventCount   在最后一帧中发生的加速度测量次数。

accelerationEvent   返回最后一帧发生的加速度测量列表(只读)(分配临时变量)

anykey 当前是否有键或鼠标被按住?(只读)

anyKeyDown 在用户点击任何键或鼠标按钮时返回True。(只读)

backButtonLeavesApp 应该退出程序吗? 只能在Android Windows Phone 或Windows平板上使用。

compass 用于访问罗盘的compass 属性 (仅适用于手持设备)。(只读)

compensateSensors   此属性控制输入传感器是否应补偿屏幕方向。

compositionCursorPos   IMES用于打开窗口的当前文本输入位置。

compositionString  由用户输入的当前IME组合字符串。

deviceOrientation  设备物理定向如操作系统报告(只读)

gyro 返回默认陀螺仪

imeCompositionMode  控制IME输入组合的启用和禁用。

imelsSelected   用户是否选择了IME 键盘输入源?

inputString 返回输入到该帧的键盘输入。

location  访问设备的位置属性 (仅用于手持设备)(只读)

mousePosition   当前鼠标位置在像素坐标。(只读)

mousePresent   表示检测到鼠标设备

mouseScrollDelta  鼠标当前滚动的增量(只读

multiTouchEnabled  属性指示系统是否处理多个触摸。

simulateMouseWithTouches 禁用带有触摸的鼠标模拟,默认情况下,启用此选项。

stylusTouchSupported当触摸笔由设备或平台支持时,返回true。

touchCount 触摸次数。保证不改变整个框架(只读)。

touches 触摸返回对象列表,表示最后一帧中所有触摸的状态。(只读)(分配临时变量)。

touchPressureSupported 如果支持触控的话,bool值由用户检查。

touchSupported 返回当前的应用程序运行的设备是否支持touch input。

静态方法

GetAccelerationEvent  返回上一帧发生的特定的加速度测量值。(不分配临时变量)。

GetAxis  返回由axisName标识的虚拟轴的值。

GetAxisRaw  返回由axisName标识的虚拟轴的值。不应用平滑滤坡。

GetButton 当按下按钮名称标识的虚拟按钮时,返回true。

GetButtonDown 在框架中,getbuttondown返回true,用户按下由buttonName标识的虚拟按钮。

GetButtonUp  在用户释放ButtonName标识的虚拟按键的第一帧时,GetButtonUp返回true.

GetJoystickNames   返回描述连接的操纵杆的字符串数组。

GetKey  当用户按住由名称标识的键时 ,返回true。

GetKeyDown   用户按下名称标识的键,在帧中返回true。

GetKeyUp   在用户释放按名称标识的密匙返回true。

GetMouseButton   返回是否按住给定的鼠标按钮。

GetMouseButtonDown    在用户按下给定的鼠标按钮时,返回true。 

GetMouseButtonUp    在用户释放给定的鼠标按钮的帧中,返回true。

GetTouch    返回特定的触摸状态的对象。(不分配临时变量)。

IsJoystickPreconfigured    确定某个特定的操纵杆是否已由Unity预先配置。(只有Linux)

RestInputAxes    重置所有输入, 对于一帧,在ResetInputAxes之后,所有轴返回到0,所有按钮返回到0。

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值