public string AddUserAnchor(GameObject go) { UnityARUserAnchorData anchorData = UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchorFromGameObject(go); _anchoredGameObjects.Add(anchorData.identifierStr, go); return(anchorData.identifierStr); }
public static UnityARUserAnchorData ToUnityArUserAnchorData(this ARHitTestResult arHitTestResult) { var transform = UnityARMatrixOps.GetMatrix(arHitTestResult.worldTransform); var anchorData = new UnityARUserAnchorData { transform = transform }; return(anchorData); }
public override void ApplyAnchor(ARAnchor arAnchor) { if (!IsRunning) { return; } Matrix4x4 matrix = Matrix4x4.TRS(arAnchor.transform.position, arAnchor.transform.rotation, arAnchor.transform.localScale); UnityARUserAnchorData anchorData = new UnityARUserAnchorData(); anchorData.transform.column0 = matrix.GetColumn(0); anchorData.transform.column1 = matrix.GetColumn(1); anchorData.transform.column2 = matrix.GetColumn(2); anchorData.transform.column3 = matrix.GetColumn(3); anchorData = UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchor(anchorData); arAnchor.anchorID = anchorData.identifierStr; m_Anchors[arAnchor.anchorID] = arAnchor; }
public override void ApplyAnchor(ARKAnchor _anchor) { if (!IsRunning) { return; } Transform t = _anchor.transform; Matrix4x4 matrix = Matrix4x4.TRS(t.position, t.rotation, t.localScale); var anchorData = new UnityARUserAnchorData(); anchorData.transform.column0 = matrix.GetColumn(0); anchorData.transform.column1 = matrix.GetColumn(1); anchorData.transform.column2 = matrix.GetColumn(2); anchorData.transform.column3 = matrix.GetColumn(3); anchorData = NativeInterface.AddUserAnchor(anchorData); _anchor.id = anchorData.identifierStr; m_anchors[_anchor.id] = _anchor; }
/// <summary> /// Anchors the game object to world. /// </summary> /// <returns>The anchor Id, or empty string.</returns> /// <param name="gameObj">Game object.</param> /// <param name="worldPosition">World position.</param> /// <param name="worldRotation">World rotation.</param> public string AnchorGameObjectToWorld(GameObject gameObj, Vector3 worldPosition, Quaternion worldRotation) { string sAnchorId = string.Empty; if (!isInitialized || !arManager) { return(sAnchorId); } GameObject anchorObj = new GameObject(); //GameObject anchorObj = GameObject.CreatePrimitive(PrimitiveType.Cube); anchorObj.transform.position = worldPosition; anchorObj.transform.rotation = worldRotation; //anchorObj.transform.localScale = new Vector3(0.1f, 0.2f, 0.1f); // for debug only UnityARUserAnchorData anchorData = UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchorFromGameObject(anchorObj); sAnchorId = anchorData.identifierStr; anchorObj.name = sAnchorId; DontDestroyOnLoad(anchorObj); // don't destroy it accross scenes if (gameObj) { gameObj.transform.SetParent(anchorObj.transform, true); gameObj.transform.localPosition = Vector3.zero; gameObj.transform.localRotation = Quaternion.identity; } MultiARInterop.MultiARData arData = arManager.GetARData(); arData.allAnchorsDict[sAnchorId] = new List <GameObject>(); if (gameObj) { arData.allAnchorsDict[sAnchorId].Add(gameObj); } return(sAnchorId); }
static void AddAnchor(UnityARUserAnchorData anchorData) { UnityARSessionNativeInterface.GetARSessionNativeInterface() .AddUserAnchor(anchorData); }
public void SendToAllPeers(UnityARUserAnchorData anchorData) { #if !UNITY_EDITOR && UNITY_IOS _sendARAnchorToAllPeers(nativeMCSession, anchorData); #endif }
static extern void _sendARAnchorToAllPeers(IntPtr nativeSession, UnityARUserAnchorData anchorData);
void AnchorReceived(UnityARUserAnchorData anchorData) { AnchorReceivedEvent?.Invoke(anchorData); }
static void SendAnchorToAllPeers(UnityARUserAnchorData anchorData) { UnityMCSessionNativeInterface.GetMcSessionNativeInterface() .SendToAllPeers(anchorData); }
/* Anchor the origin to the camera */ void anchorPosition(GameObject cube) { UnityARUserAnchorData anchor = UnityARUserAnchorData.UnityARUserAnchorDataFromGameObject(cube); UnityARSessionNativeInterface.GetARSessionNativeInterface().AddUserAnchor(anchor); }