Unity Pico MR注意事项

1.版本问题

MR这块,SDK 2.5.0的版本不支持pico4 Ultra!!

pico4 Ultra必须用pico SDK3.0以上的版本!

2.在使用空间锚点时,有可能会在创建锚点的时候返回结果ERROR_VALIDATION_FAILURE,这个如果你确定传入的参数都没有问题,那么就可能是还没开启空间锚点,需要先开空间锚点功能,代码和PXR_Manager设置都要

3.开启功能时,需要延迟两秒,不要在游戏一运行时就开启,比如开启锚点或者房间标定

4.关于场景标定的坐标相关

场景标定中,我们需要获取物体的坐标和旋转信息,比如:

csharp 复制代码
public static PxrResult GetSceneBox3DData(ulong anchorHandle, out Vector3 position, out Quaternion rotation, out Vector3 extent)

获取3D物体的数据,但是我们要注意,这些场景锚点的position,rotation,都是相对于锚点坐标的偏移

并不能直接将position赋值给cube.transform.position,他是以锚点为原点的,所以实际上使用的时候,可以如下做法:

1.创建一个空物体

2.将锚点坐标handPos和锚点旋转handleRotation赋值给空物体

3.然后再把position赋值给cube

4.之后将cube设置为锚点物体的子物体,代码如下

csharp 复制代码
PxrResult posResult = PXR_MixedReality.LocateAnchor(handle, out handlePos, out handleRotation);

var result = PXR_MixedReality.GetSceneBox3DData(handle, out var position, out var newRotation, out var extent);
var sceneAnchor = new GameObject(handle.ToString());
var box3D = GameObject.CreatePrimitive(PrimitiveType.Cube);
box3D.transform.localPosition = position;
box3D.transform.rotation = newRotation;
box3D.transform.localScale = extent;
box3D.transform.SetParent(sceneAnchor.transform);
sceneAnchor.transform.rotation = handleRotation;
sceneAnchor.transform.position = handlePos;
相关推荐
听风吹等浪起5 天前
基于改进DenseUNet的交互式MR脊椎图像分割:融合点提示机制的多尺度特征网络
网络·mr
搜移IT科技7 天前
安洁科技(002635)切入苹果Vision Pro供应链,MR业务贡献新增量。
科技·apple vision pro·mr
仗剑_走天涯17 天前
hadoop 执行mr任务出现找不到主类或无法加载主类解决方案
hadoop·mr
万里长江横渡21 天前
三菱MR-JE系列伺服报警信息查看
制造·mr
源远流长jerry1 个月前
RDMA Memory Region (MR) 机制详解:地址转换与内存保护
linux·服务器·网络·tcp/ip·架构·mr
C澒1 个月前
供应链产研交付提效:前端多业务线新增样板间页面统计方案
前端·mr
weixin_421585012 个月前
如何将论文中的方法推广到脑肿瘤切除手术前的MR图像和切除手术后的超声图像
mr
無森~3 个月前
HBase与MR、Hive整合
hive·hbase·mr
Hody913 个月前
【XR技术介绍】一文理清 OpenVR、OpenXR、SteamVR 与各厂商 SDK等容易混淆的概念
ar·vr·mr