最近实验室新购入一台PICO 4 Ultra,于是记录学习。我先前用过HoloLens & MRTK,觉得两者还是有些不同的。

串流中PICO黑屏问题

串流调试,Game窗口显示正常,PDC显示“串流中”,但PICO黑屏,查证应该是虚拟显卡的问题,我当时使用个人电脑通过微软远程桌面连接到工作站开发,所以是这个Microsoft Remote Display Adapter的原因,不使用远程桌面即可解决。其他人有遇到类似的情况有禁用集显、向日葵(OrayIddDriver Device)解决的。

导入XR Interaction Toolkit -> Starter Assets

按照官方文档中的入门教程,导入了XR Interaction Toolkit,在Assets/Samples/XR Interaction Toolkit/[version]/Starter Assets 目录下,有一DemoScene,学习这个XR Interaction Toolkit 提供的示例文件。

5. 创建一个 XR 场景 | PICO 开发者平台https://developer.picoxr.com/zh/document/unity/create-an-xr-scene/

该示例场景如下图:

使用PDC串流,进入Play Mode后,有Warning: Could not find a device that supports eye tracking on Awake.而且其中的眼动交互没有反应,根据网上说法,串流可能不能eye tracking, 可靠方法是build为SDK.

快速上手XR Interaction Toolkit

在 Unity 中创建 VR 和混合现实体验 | Unity Unity官方电子书里详细描述了这个场景,详细阅读!!!

Interactables Sample

这3个物体,使用手柄抓握键可抓取,实现该抓取功能主要是其上Collider、Rigidbody、XRGrabInteractable, 而视觉反馈则是XRInteractableAffordanceStateProvider、MaterialPropertyBlockHelper、ColorMaterialPropertyAffordanceReceiver完成的。当然还有XR Interaction Setup这个物体上的各种管理组件。

UI Sample

控件都是Unity原生控件,唯一的不同是Canvas上多了组件TrackedDeviceGraphicRaycaster

Teleportation Environment

右手摇杆向上推,射线连接到这些区域时可传送。传送带是TeleportationArea,锚点传送是TeleportationAnchor。

Climb Sample

无论是爬梯子还是爬墙面凸出的球,都是Collider、Rigidbody、ClimbInteractable组合,而视觉反馈也是XRInteractableAffordanceStateProvider、MaterialPropertyBlockHelper、ColorMaterialPropertyAffordanceReceiver完成的。

练习

根据上面DemoScene的内容,制作新场景。

首先将XR Interaction Setup全复制到新场景

在场景中放置一些物体(一般都带有Collider),给它们添加XRGrabInteractable,这时候Rigidbody会自动添加。

在场景中制作UI,在Hierarchy右键XR->UI Canvas,即可快速创造一个带有TrackedDeviceGraphicRaycaster的画布。尝试添加Button、Toggle、Scrollbar、Dropdown(或TMP_Dropdown)、Scroll View并绑定对应的事件,实现自定义交互效果。

 制作Teleport Area和Teleport Anchor,给一块区域添加BoxCollider,然后添加Teleport Area或Teleport Anchor即可。

 制作攀爬的梯子。这有添加树枝Prafab到场景中,删除MeshCollider,添加BoxCollider为合适大小,复制若干个,为它们添加共同的Empty Parent命名为Ladder,给Ladder添加ClimbInteractable,这时候Rigidbody会自动添加,取消勾选Use Gravity。即可制作梯子攀爬效果。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐