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);
    }