【MR开发】在Pico设备上接入MRTK3(三)——在Unity中运行MRTK示例

在前面的文档中,介绍了如何在Unity工程中配置号MRTK和Pico SDK

本文将介绍如何运行一个简单的带有MRTK的示例


以下正文


导入MRTK示例

导入目的

这里我们主要是需要MRTK中手部相关预制件和部分UI示例。

快捷导入

导入MRTK示例场景的Unitypackage,下载地址

注意事项

  • 这个package不包含MRTK3的相关依赖,需确保在这之前已成功导入MRTK3。
  • 出现TMP Importer的弹窗,点击Import导入TMP
  • 部分资源有缺失,去掉这些资源。(因为这个暂时用不上)

例如,去掉下图中的MRTK_Logo等对象

接入Pico的手部模型

打开示例场景

打开Assests/Scenes/SampleScene.unity

修改手部模型

  1. 修改"MRTK RightHand Controller"组件的Model设置。

修改前:

修改后:

  1. 同理,修改另外一个手部模型

  2. 禁用Pico的默认射线对象

若不禁用,则会出现MRTK的射线与Pico的手部射线对象同时存在的情况

注意

Pico SDK文档中介绍,将手部预制件(如HandLeft)添加到"XR-Rig"->"Camera Offest"的节点下面。而当接入MRTK后,请勿添加。否则场景中会出现多个手部模型。

修改组件

注意:若是采用前文的整合包资源,则无需这个步骤。我已做修改。

下载地址:MRTK3整合包下载链接

修改MRTK的脚本

这里参考了MRTK3在PICO4上的使用小结

这里会用到之前设置的"PICO_INSTALL",采用条件编译

  1. 修改ArticulatedHandController

此脚本挂载于MRTK XR Rig下的MRTK LeftHand Controller和MRTK RightHand Controller物体上。修改其中的UpdateInput方法,添加条件编译指令,示例如下:

c# 复制代码
        /// <inheritdoc />
        protected override void UpdateInput(XRControllerState controllerState)
        {
		//...
                    // Debounce the polyfill pinch action value.
                    bool isPinched = pinchAmount >= (pinchedLastFrame ? 0.9f : 1.0f);

#if !PICO_INSTALL
                    // Inject our own polyfilled state into the Select state if no other control is bound.
                    if (!selectAction.action.HasAnyControls() || isTrackingStatePolyfilled)
                    {
                        controllerState.selectInteractionState.active = isPinched;
                        controllerState.selectInteractionState.activatedThisFrame = isPinched && !pinchedLastFrame;
                        controllerState.selectInteractionState.deactivatedThisFrame = !isPinched && pinchedLastFrame;
                    }

                    if (!selectActionValue.action.HasAnyControls() || isTrackingStatePolyfilled)
                    {
                        controllerState.selectInteractionState.value = pinchAmount;
                    }

                    // Also make sure we update the UI press state.
                    if (!uiPressAction.action.HasAnyControls() || isTrackingStatePolyfilled)
                    {
                        controllerState.uiPressInteractionState.active = isPinched;
                        controllerState.uiPressInteractionState.activatedThisFrame = isPinched && !pinchedLastFrame;
                        controllerState.uiPressInteractionState.deactivatedThisFrame = !isPinched && pinchedLastFrame;
                    }

                    if (!uiPressActionValue.action.HasAnyControls() || isTrackingStatePolyfilled)
                    {
                        controllerState.uiPressInteractionState.value = pinchAmount;
                    }

                    pinchedLastFrame = isPinched;
#else
                    controllerState.selectInteractionState.active = isPinched;
                    controllerState.selectInteractionState.activatedThisFrame = isPinched && !pinchedLastFrame;
                    controllerState.selectInteractionState.deactivatedThisFrame = !isPinched && pinchedLastFrame;
                    controllerState.selectInteractionState.value = pinchAmount;
                    
                    controllerState.uiPressInteractionState.active = isPinched;
                    controllerState.uiPressInteractionState.activatedThisFrame = isPinched && !pinchedLastFrame;
                    controllerState.uiPressInteractionState.deactivatedThisFrame = !isPinched && pinchedLastFrame;
                    controllerState.uiPressInteractionState.value = pinchAmount;
                    
                    pinchedLastFrame = isPinched;
#endif
                }

                // Cast to expose hand state.
				//...
            }
        }

添加PXR组件

添加PXR_Manager,并启用手势追踪

运行示例场景

相关推荐
2601_957190902 天前
MR卡丁车:虚实融合,重新定义线下竞速娱乐新体验
娱乐·mr
水火既济__4 天前
大数据hive_mr压缩问题
大数据·hive·mr
郑寿昌10 天前
2026年MR交互革命:事件相机重塑手势眼动同步
数码相机·mr
郑寿昌10 天前
2026年MR框架对事件相机支持前瞻
数码相机·mr
Soari17 天前
三菱伺服放大器MR-JET-10G配置教程
mr·伺服驱动器·mr-jet
Soari17 天前
三菱伺服放大器MR-JET-10G轴写校验错误
mr·伺服驱动器
Soari17 天前
三菱伺服放大器MR-JET-10G与HG-KNS13J伺服电机接线教程
mr·伺服电机·三菱·伺服驱动器
汇智信科24 天前
未来战争混合现实体验系统,赋能信息化作战指挥
mr·hololens·混合现实·智能感知·未来作战能源·虚拟展示系统·信息化作战
听风吹等浪起1 个月前
基于改进DenseUNet的交互式MR脊椎图像分割:融合点提示机制的多尺度特征网络
网络·mr
搜移IT科技1 个月前
安洁科技(002635)切入苹果Vision Pro供应链,MR业务贡献新增量。
科技·apple vision pro·mr