用户输入服务

  • 类型:UserInputService

服务对象
此对象为服务对象,可以使用GetService()函数获取此服务。

不可创建
无法使用RWObject:New(ClassName)创建此对象,也不在编辑器对象列表中显示。

不在编辑器管理器中显示

简介

用户输入服务是用来检测和获取用户输入的服务。

用户输入服务是为实现用户更好地与游戏进行交互的一种服务。用户输入服务提供了一系列的函数和事件来检测用户的输入信息,比如InputBegan()事件用于检测鼠标、键盘、触摸等用户输入。

用户输入服务只能在客户端通过客户端脚本或者通用模块脚本中被调用,每个客户端只能检测自己的用户输入,无法检测到其他用户的输入。

对于PC用户

对于移动端用户

属性

    TouchActivated     触摸激活   bool    [只读]
    描述用户当前设备是否有可用的触摸屏

    OnScreenKeyboardVisible     开启屏幕键盘   bool    [只读]
    描述屏幕键盘当前在用户屏幕上是否可见

    OnScreenKeyboardPosition     屏幕键盘位置   Vector2    [只读]
    确定屏幕键盘的位置

    MouseCursorActivate     显示鼠标指针   bool   
    确定鼠标图标是否可见

    MouseActivate     鼠标激活   bool    [只读]
    描述用户的设备是否有可用的鼠标

    MouseSensitivity     鼠标灵敏度   float   
    鼠标灵敏度,决定物理鼠标拖动转化为游戏中位置移动的程度。

    MouseMoveActivate     鼠标是否可移动   CursorLockMode   
    确定用户的鼠标是否可以自由移动或锁定

    GyroscopeActivate     陀螺仪激活   bool    [只读]
    描述用户的设备是否具有陀螺仪

    AccelerometerActivate     加速度计激活   bool    [只读]
    描述用户的设备是否具有加速度计

函数

    GetDeviceGravity()
    获取当前设备的重力矢量,返回陀螺仪中的加速度数据。若在PC端使用,则返回(0,0,0)

    GetDeviceRotation()
    获取当前设备的旋转角度,返回陀螺仪中的角速度数据。若在PC端使用,则返回(0,0,0)

    GetKeyPressed()
    返回与当前按下的枚举/键代码键关联的InputObject数组

    GetLastInputType()
    返回用户最近一次的输入类型

    GetMouseButtonsPressed()
    返回与当前按住的鼠标按钮对应的inputObject数组

    GetMouseDelta()
    返回鼠标在上一个渲染帧中位置偏移量(以像素为单位,且仅在鼠标有输入情况下有效)

    GetMouseLocation()
    返回玩家鼠标的当前屏幕位置

    IsKeyDown(KeyCode)
    返回给定的按键按下时,返回值为TRUE一次

    IsKeyPress(KeyCode)
    返回给定的按键是否处于按下状态

    IsKeyUp(KeyCode)
    返回给定的按键抬起时,返回值为TRUE一次

    IsMouseButtonPressed(mouseButton)
    返回给定的鼠标按钮是否处于按下状态

    IsPointerUi()
    检测鼠标是否指向UI

    IsPointerUi(fingerId)
    检测当前的Touch是否指向UI。用于触摸屏。

    GetTouch(TouchIndex)
    多点触摸时,返回不同触摸点的信息

事件

    InputBegan(inputobject)
    用户输入(指鼠标、触摸、键盘等)开始后,触发此事件,并记录输入对象inputobject

    InputChanged(inputobject)
    用户输入改变时,触发此事件,并记录输入对象inputobject

    InputEnded(inputobject)
    用户输入结束时,触发此事件,并记录输入对象inputobject

    LastInputTypeChanged(userInputType)
    当用户输入类型改变时,触发此事件,并记录改变前输入设备的类型

    TouchEnded(Touch)
    当用户停止在触摸设备的输入时,触发此事件

    TouchHoldPress(Touch.position, touchState)
    当用户长时间触摸,并停留在同一位置时,触发此事件

    TouchMoved(Touch)
    当用户在触摸设备上移动手指时,触发此事件

    TouchPan(touchPosition,deltaPosition,deltaVelocity, touchState)
    当用户在触摸设备上平移手指时,触发此事件

    TouchPinch(positionTable, scale , Pinchspeed, touchState)
    当用户使用两个手指执行捏或拉手势时,触发此事件

    TouchRotate(positionTable, signedAngle, signedAnglespeed , touchState)
    当用户使用两个手指执行旋转手势时,触发此事件

    TouchStarted(Touch)
    当用户开始触摸时,触发此事件

    TouchSwipe(touchMoveDir, touchCount)
    当用户开始滑动时,触发此事件,与TouchMove不同,TouchSwipe会传入移动的方向

    TouchTap(Touch.position)
    当用户在触摸设备上轻轻点击时,触发此事件

    TouchTapInGame(Touch.position)
    当用户的轻击事件发生在游戏世界时,触发此事件

    EventDrag(Distance)
    当用户在触摸设备上双指滑动时,触发此事件

    EventZoom(detal)
    使用鼠标滑轮进行缩放时,触发此事件

文档更新时间: 2020-10-31 13:39   作者:刘征