【Unity基础_Day26】VRTK、UGUI、VR_UI框架

一.VRTK

 1.VRTK快速了解

HTC VIVE_橙子SKODE ' 博客-CSDN博客

 2.模拟VR手柄头盔的设置

VRTK和SteamVR的配置

① 创建空对象 命名[VRTKManager]  添加脚本 VRTK_SDK Manager

② 在[VRTKManager]下创建空对象 命名[VRTKSetUp]  添加脚本 VRTK_SDK Setup

③ 在[VRTKSetUp]下 放入 预制体 [CameraRig] 和 [SteamVR]

④ 创建空对象 命名[Controller]

⑤ 在[Controller]下 创建两个空对象 分别命名为[LeftController]和[RightController],并将其放入到[VRTKManger]的 Script Aliases中(相对应)

⑥ 此时,点击VRTK_SDK Manager中的Auto Populate 自动配置SteamVR,从而实现设备的基本操作

模拟VR手柄头盔,创建空对象 命名为 [Simulator],并将预制体 [VRSimulator_CameraRig]放入,再次点击 VRTK_SDK Manager中的Auto Populate,实现配置Simulator(模拟器)

提示:VRTK_SDK Manager进行Auto 识别时,要先对SteamVR进行识别,之后在对Simulator模拟器进行识别,否则就会无法访问到模拟器

3.光标指针

4.3DUI

Canvas的Render Mode选为 WorldSpace   调整画布的大小  进而来调整canvas内其他UI的大小

二.UGUI

1.UGUI 事件处理流程:

EventSystem 每帧调用 BaseInputModule 中 Process 方法。

   (实现类:StandaloneInputModule/TouchInputModule 移动端)

② 计算光标接触的物体(Graphic)

   —Process 方法调用 BaseRaycaster 的Raycast 方法获取所有 Graphic

  (实现类:GraphicRaycaster/PhysicsRaycaster/Physics2DRaycaster)

   —通过Graphic 的 IsRaycastLocationValid 方法确定光标选中的 Graphic

③ 通过ExecuteEvents引发物体的相关事件

   —调用Execute 方法获取相关接口类型对象,再调用其接口方法

个人总结:通过调用 EventSystem 方法 执行子类 InputModule方法(多态),来获取Graphic,而UGUI中检测到的是 Graphic包括 Image 、Texture和RawImage ,其最终继承的都含有Graphic。之后通过调用Execute方法来用接口进行实现。

UGUI的检测并不是发射射线来进行检测,而是判断在画布内是否有点击输入

IsRaycastLocationVaild是虚方法,可以根据需求重写修改

2.VRTK_UI 事件处理流程:

VRTK_EventSystem 创建VRTK_VRINputModule对象并每帧调用其Process 方法

② 计算光标接触的物体(Graphic)

  —Process 方法调用 BaseRaycaster 的Raycast 方法获取所有 Graphic

  (实现类:VRTK_UIGraphicRaycaster

  —通过Graphic 的IsRaycasstLocationValid 方法确定手柄选中的Graphic

  (从VRTK_UIPoniter所在物体位置,向其forward 方向发出射线)

③ 通过ExecuteEvents 引发物体的相关事件

  —调用Execute 方法获取相关接口类型对象,再调用其接口方法

3.VR UI框架

① unity声明周期

 Unity生命周期_宁静致远-CSDN博客_unity生命周期

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值