Hololens 收藏本版 已有5人收藏 +发表新主题
查看: 39552|回复: 4
打印 上一主题 下一主题

[分享] Unity场景持久化(Persistence in Unity)

[复制链接]

[分享] Unity场景持久化(Persistence in Unity)

yeziwang 发表于 2016-7-1 17:32:19 浏览:  39552 回复:  0 [显示全部楼层] 复制链接
命名空间: UnityEngine.WSA.VR.Persistence
类型: WorldAnchorStore
WorldAnchorStore 是创造全息体验的关键,当用户离开原场景中时,原场景中的全息对象会保持在特定位置;当用户回到原场景时,能够准确还原原场景的全息内容。这保证了用户能够将任何全息对象贴到任何他们想放置的位置。
如何在整个会话中保持全息对象
WorldAnchorStore能够允许你在整个会话中保持空间锚的位置。为了能真正在会话中保持全息对象,你需要单独使用特定的空间锚来追踪你的GameObjects。通常创建一个附有空间锚根GameObject,同时对它的子全息图也附上具有相对位置偏移的空间锚组件。
为了从先前场景中载入全息对象:
1. 获取WorldAnchorStore
2. 载入空间锚关联的应用数据,从中获取空间锚ID
3. 通过ID获取空间锚对象
为了保存全息对象信息,需要在下个场景之前:
1. 获取WorldAnchorStore
2. 通过指定ID来保持对应空间锚对象
3. 连同ID保持与空间锚关联的应用数据
获取WorldAnchorStore
为了能够在保持在后续使用WorldAnchorStore,我们需要先通过异步操作打开此对象,我们需要启用:
当WorldAnchorStore完成加载,在这种情况下,我们需要StoreLoaded 处理程序:
现在就可以使用WorldAnchorStore对象来保存场景信息了。
保存空间锚
为了节省,我们只需要命名我们保存和通过的空间锚中的对象,注意:同一空间锚不能多次保存。每个空间锚只应该保存一次,如果需要更新空间锚信息,则需要先删除旧的空间锚信息,然后再保存新的空间锚信息。
载入空间锚
代码如下
我们还可以在store中,Delete() 来删除我们以前保存和存储的空间锚。Clear()用来删除以前保存的所有数据。
枚举已有的空间锚
我们可以通过枚举已保存的空间锚信息来查找之前保存的空间锚,代码如下

分享至:
| 人收藏
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.