我正在 Unity 2022.3.20f1 中为 HoloLens 2 制作混合现实游戏。我正在使用 MRTK 3 和一个更新为与 MRTK 3 一起使用的世界锁定工具的分支,因为官方版本不兼容(链接到该分支 在这里)。在游戏中,有人在玩家玩游戏之前设置场景以适应真实环境,因此我希望世界锁定工具能够记住这些对象在此设置阶段的放置位置,之后它们将变得对于玩家来说不可移动。
如果我在后台关闭应用程序,世界锁定工具肯定会工作,因为对象位置在会话之间保持不变。如果我不在后台关闭应用程序,当我将对象移动到其他位置时,它也会持续存在。但问题是,如果我移动对象,然后完全关闭应用程序或关闭 HoloLens,它会将对象移回到移动之前的位置。
我尝试简单地将世界锁定工具管理器放入我的层次结构中,该层次结构适用于世界锁定静态对象。我还尝试禁用自动保存并在用户完成放置对象后调用保存,但这没有改变。
有人知道我在这里做错了什么吗?
Unity世界锁定工具提供稳定可靠的世界锁定坐标系,将虚拟/全息世界与物理世界绑定。它的目的不是保存游戏对象的位置信息。作为持久空间坐标系| Microsoft Learn 提到,仅保存以下数据。游戏对象不是它的一部分。
WLT生成稳定可靠的世界锁定坐标系并将虚拟/全息世界与物理世界绑定后,您只需保存游戏对象的坐标和状态变化信息,并在游戏时加载相应的坐标和状态。打开游戏。 WLT 会将其与物理世界同步。就好像普通游戏的坐标系是和游戏世界模型绑定的,你只需要记录物品坐标的变化,然后加载物品的位置即可。