栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

【Unity】虚拟现实 VRTK插件使用教程(一)插件基本配置

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity】虚拟现实 VRTK插件使用教程(一)插件基本配置

文章目录
  • 什么是VRTK
  • 如何下载
  • 基本配置
    • 事件监听
    • HTC VIVE按键图例


什么是VRTK

VRTK全称是Virtual Reality Toolkit,前身是SteamVR Toolkit,由于后续版本开始支持其他VR平台的SDK,如Oculus、Daydream、GearVR等,故改名为VRTK,它是使用Unity进行VR交互开发的利器。

如何下载
  1. 在Project中输入“VRTK”。

  2. 选择从Asset Store中搜索。

  3. 选择 VRTK - SteamVR Unity Toolkit。

  4. 导入包或点击下载(不同版本情况不同)。

现在的安装路径可能略微有些区别,总之看到下图的图标就装它就对了。

基本配置
  1. 创建空物体,命名为[SDKManager]。
  2. 创建子物体,命名为SteamVR。
  3. 拖拽[CameraRig](现在改成[UnityBase_CameraRig]了)至SteamVR中。
  4. 为SteamVR附加VRTK_SDK Setup组件,设置Quick Select属性为SteamVR(这个要根据游戏平台选择,假如你做的是安卓项目就要选安卓相关的)。
  5. 为SDKManager附加VRTK_SDKManager组件,单击Auto Populate按钮,自动填充安装的SDK。

    成功情况如上图所示,但是基本上都不会成功的。这时候需要找到LegacyExampleFiles(或者Examples)文件夹,随便打开一个场景再返回自己的场景即可。如果还没成功,可能是你Quick Select属性设置的有问题。
  6. 创建空物体,命名为:[VRTKScript]。
  7. 创建子物体,命名为Head,附加VRTK_SDKObjectAlias组件,设置Sdk Object 属性为Headset。
  8. 创建子物体,命名为Body,附加VRTK_SDKObjectAlias组件,设置Sdk Object 属性为Boundary。
  9. 创建子物体,命名为LeftController,附加VRTK_ControllerEvent组件。
  10. 创建子物体,命名为RightController,附加VRTK_ControllerEvent组件。
  11. 分别将LeftController、RightController物体拖拽至[SDKManager]组件的相应属性中。


12. 创建[SDKManager]的子物体,命名为Simulator。
13. 将VRTK/Source/SDK/Simulatro/[VRSimulator_CameraRig](旧版本文件目录为VRTK/Prefabs/)拖拽到Simulator中。

至此,VRTK的基本配置就结束了。LegacyExampleFiles(或者Examples)文件夹中提供了大量的示例场景,可以打开多看看。

另外,[VRSimulator_CameraRig]是一个模拟器,用于在没有VR实体设备的情况下使用鼠标键盘进行调试。具体操作方式在程序运行后会有提示,操作的快捷键也是可以改的,查看[VRSimulator_CameraRig]的属性就能看到,具体如下图:

事件监听

给左右手的Controller(LeftController和RightController)加上VRTK_ControllerEvents组件,如下图:


事件监听代码示例:

/// 
/// 枪的控制脚本
/// 
public class SingleGunControl : MonoBehaviour
{
    private VRTK_ControllerEvents controller;

    private void Awake()
    {
        controller = GetComponent();
    }

    private void OnEnable()
    {
        controller.TriggerPressed += OnTriggerPressed;
    }

    private void OnDisable()
    {
        controller.TriggerPressed -= OnTriggerPressed;
    }

    private void OnTriggerPressed(object sender, ControllerInteractionEventArgs e)
    {
        Debug.LogFormat("{0} -- {1}", sender, e.touchpadAngle);
    }
}

将此脚本挂到LeftController和RightController即可,输出内容如下:

HTC VIVE按键图例

在此附上VRTK的文档链接:VRTK官方文档


更多内容请查看总目录【Unity】Unity学习笔记目录整理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/898121.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号