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


什么是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组件,如下图:

在这里插入图片描述
事件监听代码示例:

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

    private void Awake()
    {
    
    
        controller = GetComponent<VRTK_ControllerEvents>();
    }

    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学习笔记目录整理

猜你喜欢

转载自blog.csdn.net/xiaoyaoACi/article/details/120208854