使用可交互对象 (VRTK_InteractUse)

发表于2016-11-02
评论0 3.7k浏览
导语 
        SteamVR_Unity_Toolkit工具包API详解:VRTK_InteractUse

使用可交互对象 (VRTK_InteractUse)
概述
       Interact Use脚本绑定在[CameraRig]下的手柄游戏对象上.并且手柄游戏对象必须绑定VRTK_ControllerEvents脚本,来监听手柄上按钮的事件,抓取/释放可交互物体等.它监听的是AliasGrabOn和AliasGrabOff事件,当这两个事件被触发,那么本脚本内委托给这两个事件的方法就会被回调.
       该手柄游戏对象也需要绑定VRTK_InteractTouch脚本,来确定可交互物体是否被触碰.可交互对象只有先被触碰才能进行使用.
       一个对象必须包含VRTK_InteractableObject脚本,并且参数isUsable设为true时,才可以使用。
       如果一个有效交互对象可以使用,那么按下手柄上的使用按钮(默认是Trigger),该交互对象的StartUsing方法会被调用。

Inspector可见参数
       Hide Controller On Use: 当有效的使用行为开始时是否隐藏手柄
       Hide Controller Delay: 隐藏手柄前等待的时间,单位为秒

事件类
       ControllerUseInteractableObject - 当有效对象开始被使用时通知正在监听本事件的方法开始调用
       ControllerUnuseInteractableObject - 当有效对象停止被使用时通知正在监听本事件的方法开始调用

事件参数
       uint controllerIndex - 正在执行交互的手柄的索引
       GameObject target - 正在与手柄进行交互的游戏对象

公共方法
       GetUsingObject/0
       public GameObject GetUsingObject()
       Parameters
       none
       Returns
       GameObject - 正在被当前手柄使用的游戏对象
       GetUsingObject方法返回正在被当前手柄使用的游戏对象
       ForceStopUsing/0
       public void ForceStopUsing()
       Parameters
       none
       Returns
       none
       ForceStopUsing方法会强制手柄停止对正在接触的游戏对象的使用行为,同时设置交互对象脚本的参数UsingState的值为0
       ForceResetUsing/0
       public void ForceResetUsing()
       Parameters
       none
       Returns
       none
       ForceResetUsing方法会强制手柄停止对正在接触的游戏对象的使用行为,但是不修改交互对象脚本的参数UsingState的值

私有/保护方法
       IsObjectUsable/1
       IsObjectHoldOnUse/1
       GetObjectUsingState/1
       这三个方法返回一些交互对象的状态参数,是否可使用,需不需要持续按键来使用,当前的使用状态等。
       SetObjectUsingState/2
       Parameters
       GameObject - 交互对象
       int - 值
       Returns
       none
       SetObjectUsingState方法用来设置交互对象脚本的参数UsingState的值。
       Monobehaviour 方法
       Awake
       VRTK_InteractTouch和VRTK_ControllerActions脚本的初始化。
       OnEnable
       开始事件监听
       OnDisable
       停止事件监听,强制停止使用
       Example
       SteamVR_Unity_Toolkit/Examples/006_Controller_UsingADoor simulates using a door object to open and close it. It also has a cube on the floor that can be grabbed to show how interactable objects can be usable or grabbable.
SteamVR_Unity_Toolkit/Examples/008_Controller_UsingAGrabbedObject which shows that objects can be grabbed with one button and used with another (e.g. firing a gun).
   看了上面的文章 热爱游戏创作的你是不是已经开始热血沸腾了呢?是不是迫不及待的想加入游戏团队成为里面的一员呢?
  福利来啦~赶快加入腾讯GAD交流群,人满封群!每天分享游戏开发内部干货、教学视频、福利活动、和有相同梦想的人在一起,更有腾讯游戏专家手把手教你做游戏!
腾讯GAD游戏程序交流群:484290331     

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引