首页 > 解决方案 > 是否可以统一锁定场景?

问题描述

在全息镜头中的场景之间切换时,您的坐标将重置为您当前在切换时查看的方式。

假设我在启动全息透镜(场景 1)时在 0XYZ 有一张图片,并且在向右 90° 处我有一个对象,如果我按下它,我就会进入另一个场景。在另一个场景(场景 2)中,我在 0XYZ 有一张新照片。

团结起来,我得到了预期的结果,因为我必须向左旋转 90° 才能看到(场景 2)中的图片。Unity 在场景之间转换时会保持 XYZ 坐标。

但是,如果我在 hololens 中切换场景,来自 (scene2) 的图片会直接出现在我的脸上,因为 hololens 在加载场景时会重置 XYZ 坐标。

首先,我认为我所要做的就是将对象(scene1)的所有 XYZ 保存到 Json 中并将 Json 加载到(scene2)中,以将图片放置在与(scene1)中相同的位置。但是由于 XYZ 被重置,所以 (scene2) 中的图片也会移动。

所以基本上,无论我在房间的哪个位置,是否可以锁定场景以保持其位置/旋转?

标签: c#unity3dhololens

解决方案


我的建议是有一个主要场景,除了你的相机之外大部分都是空的,然后你使用以下方法加载和/或卸载其他场景:

SceneManager.LoadSceneAsync("SceneName", LoadSceneMode.Additive);

您可以使用事件SceneManager.sceneLoaded跟踪加载的场景。然后,您可以在要加载新场景时卸载该场景。


推荐阅读