public WorldAnchor LockObject(string id, GameObject go) { WorldAnchor worldAnchor = go.GetComponent <WorldAnchor>(); bool flag = worldAnchor != null; if (worldAnchor == null) { worldAnchor = go.AddComponent <WorldAnchor>(); } WorldAnchor result; if (WorldAnchorTransferBatch.LoadAnchor_Internal(this.m_NativePtr, id, worldAnchor)) { result = worldAnchor; } else { if (!flag) { UnityEngine.Object.DestroyImmediate(worldAnchor); } result = null; } return(result); }
/// <summary> /// If we are supposed to create the anchor for export, this is the function to call. /// </summary> public void CreateAnchor() { objectToAnchor = SharedCollection.Instance.gameObject; UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch watb = new UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch(); UnityEngine.XR.WSA.WorldAnchor worldAnchor = objectToAnchor.GetComponent <UnityEngine.XR.WSA.WorldAnchor>(); if (worldAnchor == null) { worldAnchor = objectToAnchor.AddComponent <UnityEngine.XR.WSA.WorldAnchor>(); } exportingAnchorName = Guid.NewGuid().ToString(); Debug.Log("exporting " + exportingAnchorName); watb.AddWorldAnchor(exportingAnchorName, worldAnchor); UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch.ExportAsync(watb, WriteBuffer, ExportComplete); }