我目前正在为 Meta Quest 3 开发一个应用程序,该应用程序利用多用户直通功能。基于以下参考文章,我已经成功实现了空间锚点放置。
参考文章:Quest 空间锚 - Zenn
但是,下一步是使用 Photon Unity Networking 2 (PUN2) 使应用程序成为多用户。具体来说,我想在多个用户之间共享和同步放置的空间锚点,但我不确定如何实现这一点。
现状:
问题: 如何实现 PUN2 以在多用户环境中共享和同步空间锚点?任何具体的代码示例或最佳实践将不胜感激。
附加信息:
附加信息:
预先感谢您的协助。
您可以使用 PUN2 的自定义属性来共享您的锚点。
成功创建新锚点后,您可以将其保存在云端以供以后使用。它将返回一个锚点 uuid (Guid)。 有关 Meta 文档的更多信息:https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-persist-content/
然后您可以将此 uuid 作为字符串保存在您的 Photon 房间中,如下所示:
string uuid = anchor.Uuid.ToString();
Hashtable propsToSet = new()
{
{ _ACTIVE_ANCHOR, uuid }
};
PhotonNetwork.CurrentRoom.SetCustomProperties(propsToSet);
其他用户可以检索此 uuid :
string uuidToConvert;
uuidToConvert = (string)PhotonNetwork.CurrentRoom.CustomProperties[_ACTIVE_ANCHOR];
Guid anchorID = new Guid(uuidToConvert);
然后您可以使用 Meta 中的方法来加载具有此 Guid 的锚点。 您必须加载、本地化,然后绑定新锚点。
注意:您需要使用来自 Photon 的哈希表:
using Hashtable = ExitGames.Client.Photon.Hashtable;
希望我能回答你的问题