2VRTK自带案例分析(第二部分)UnitySteamVR开发工具插件.docx
文本预览下载声明
2、Unity Steam_VR 开发工具插件 VRTK自带案例分析(第二部分)?DEMO 020_CameraRig_MeshTeleporting在各种形状的网格上传送激活指针传送和抛物线在复杂网格模型上的传送效果,没有新的功能演示?DEMO 021_Controller_GrabbingObjectsWithJoints物体不同的交互方式打开宝箱?盒子的上半部分添加转轴组件设置转轴的转动轴向,位置,就可以像真实打开箱子一样。箱子的把手需要添加以下脚本VRTK_Interactable Object 是必须要添加的脚本,它保证可以被手柄抓取 rigidbody和fiexed joint是用来连接上半部分的盒子,固定把手的位置??有一定活动区间关节物体使用character joint 来确定上下关节的连接关系(每个关节也要添加rigidbody 组件)其关节上的VRTK_InteractableObject 的Grab Attach Mechanic 要设置成spring_joint该关节交互组件继承重写了?抓取和松开物体时的方法,???抓取时,刚体模拟动力学运动,松开时,就停止模拟,防止受重力影响?抽屉和打开盒子相似的设置,不过约束的方式不一样,用的是configurable joint?注意约束轴向和可活动距离约束数值设置VRTK_InteractableObject?的抓取方式DEMO 022_Controller_CustomBezierPointer自定义抛物线的外观DEMO 023_Controller_ChildOfControllerOnGrab弓箭的思路???抓取方式:作为手柄子物体,跟随手柄运动???制作弓箭的弯曲动画?大致思路:?1)手柄抓取弓时,弓的interactableObject?组件查询是哪个手柄握住弓,得到该手柄的VRTK_ControllerEvents,和VRTK_ControllerActions。前者监听手柄的输入,后者控制手柄震动,同理?获得缓冲拿箭的手柄的这两个组件。?2)如果当前弓上有箭头,且手柄握着箭,箭头位置归零,箭头对向瞄准处。拉弦时,弓箭的朝向有拉弦手柄到握弓手柄方向。根据拉弦强度播放拉弓动画。如果拉弦的手柄松开,发射弓箭,初始化弓箭的刚体速度方向。3)被握住箭碰到弓,??将箭定位到拉弦处的虚拟定位物体的子层级下,箭的方向由拉弦处位置朝向弓把手上箭的放置位置。DEMO 024_CameraRig_ExcludeTeleportLocations限制可传送的物体在这里写入的标签,无法识别传送到该物体表面。可以写入多个标签,然后拖入红框中第二个方框内。DEMO 025_Controls_Overview交互控制器:?真实版?UI?元素。所有类型的控制器都继承自VRTK_Control。?第一种交互控制器:按钮VRTK_Button把这个脚本添加到游戏物体上,可以让这个游戏物体表现的和真实世界的按钮一样的物理特性,玩家通过触碰它,可以被按下,按钮按下时的移动方向可以自由设置,也可以让脚本自由侦测按钮周围的碰撞环境来确定按下的运动方向。监听按钮按下的事件有两种方式:1?、在Event OnPush?事件list?添加一个像UGUI?或?NGUI那样,当事件发生时,触发脚本中的方法。2、是用代码的方式:GetComponent/spanVRTK_Button().events.OnPush.AddListener(handlePush);HandlePush是事件触发时调用的方法。关于按钮移动方向的设置该按钮的移动方向是局部坐标的X轴,图中黄线的就是可移动的方向。上图是有脚本自由侦测的移动方向脚本中connented to?是让按钮作为哪个物体的子物体,跟随之移动第二种交互?:滑调参数和UI的滑调参数意义相似,规定了最小最大值。注意,滑调的左右移动的极限位置,如果Detect Min Max?打钩,即自动识别需要滑调左右有碰撞体作为边界如第一张滑调图片显示的ColliderBox。获取改滑调的当前数值?监听defaultEvent.OnValueChanged.AddListenerGetValue()是当前数值,GetNormalizedValue()是百分比数值滑调事件有两个传入参数,第一个是当前slider?的当前滑动数值,第二个是归一化的当前滑动数值,即百分比:0-1第三种交互?:旋钮类似电风扇的开关Direction?是旋转的轴向。事件和slider?一样。??其他交互控制器?:??宝箱??,门?,杠杆Demo 026_Controller_ForceHoldObject手柄握住的物体和其他物体碰撞是,震动反馈DEMO 027_CameraRig_TeleportBy
显示全部