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