wordpress备份整站,建设网站企业网上银行登录入口官方,登录百度,关于网站建设的指标在前面的文档中#xff0c;介绍了如何在Unity工程中配置号MRTK和Pico SDK
【MR开发】在Pico设备上接入MRTK3#xff08;一#xff09;在Unity中导入MRTK3依赖【MR开发】在Pico设备上接入MRTK3#xff08;二#xff09;在Unity中配置Pico SDK
本文将介绍如何运行一个简单…在前面的文档中介绍了如何在Unity工程中配置号MRTK和Pico SDK
【MR开发】在Pico设备上接入MRTK3一在Unity中导入MRTK3依赖【MR开发】在Pico设备上接入MRTK3二在Unity中配置Pico SDK
本文将介绍如何运行一个简单的带有MRTK的示例 以下正文 导入MRTK示例
导入目的
这里我们主要是需要MRTK中手部相关预制件和部分UI示例。
快捷导入
导入MRTK示例场景的Unitypackage下载地址
注意事项
这个package不包含MRTK3的相关依赖需确保在这之前已成功导入MRTK3。出现TMP Importer的弹窗点击Import导入TMP部分资源有缺失去掉这些资源。因为这个暂时用不上
例如去掉下图中的MRTK_Logo等对象
接入Pico的手部模型
打开示例场景
打开Assests/Scenes/SampleScene.unity
修改手部模型
修改“MRTK RightHand Controller”组件的Model设置。
修改前 修改后 2. 同理修改另外一个手部模型 3. 禁用Pico的默认射线对象 若不禁用则会出现MRTK的射线与Pico的手部射线对象同时存在的情况 注意 Pico SDK文档中介绍将手部预制件如HandLeft添加到“XR-Rig”-“Camera Offest”的节点下面。而当接入MRTK后请勿添加。否则场景中会出现多个手部模型。
修改组件 注意若是采用前文的整合包资源则无需这个步骤。我已做修改。 下载地址MRTK3整合包下载链接 修改MRTK的脚本 这里参考了MRTK3在PICO4上的使用小结 这里会用到之前设置的“PICO_INSTALL”采用条件编译 修改ArticulatedHandController
此脚本挂载于MRTK XR Rig下的MRTK LeftHand Controller和MRTK RightHand Controller物体上。修改其中的UpdateInput方法添加条件编译指令示例如下 /// 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;
#elsecontrollerState.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并启用手势追踪
运行示例场景