void UpdateObjectAnchor(ARObjectAnchor arObjectAnchor) { if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { Debug.Log("***UpdateObjectAnchor"); } }
void RemoveObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor removed"); if ((arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) && (objectAnchorGO != null)) { GameObject.Destroy(objectAnchorGO); } }
void UpdateObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor updated"); if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { objectAnchorGO.transform.position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); objectAnchorGO.transform.rotation = UnityARMatrixOps.GetRotation(arObjectAnchor.transform); } }
void RemoveObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor removed"); mText.text = "object anchor removed: " + referenceObjectAsset.name + " tracked: " + referenceObjectAsset.objectName; if ((arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) && (objectAnchorGO != null)) { GameObject.Destroy(objectAnchorGO); } }
void AddObjectAnchor(ARObjectAnchor arObjectAnchor) { if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { Debug.Log("***AddObjectAnchor"); Instantiate(AxesPrefab, UnityARMatrixOps.GetPosition(arObjectAnchor.transform), UnityARMatrixOps.GetRotation(arObjectAnchor.transform)); FindObjectOfType <mqttTest>().Connect(); } }
void ObjectAnchorRemoved(ARObjectAnchor anchorData) { Debug.Log("ObjectAnchorRemoved"); if (objectAnchorMap.ContainsKey(anchorData.referenceObjectName)) { GameObject rpgo = objectAnchorMap [anchorData.referenceObjectName]; GameObject.Destroy(rpgo.gameObject); objectAnchorMap.Remove(anchorData.identifier); } }
void RemoveObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor removed"); if ((objectMeans.Any(o => o.referenceObjectAsset.objectName.Equals(arObjectAnchor.referenceObjectName))) && objectAnchorGO.ContainsKey(arObjectAnchor.referenceObjectName)) { GameObject.Destroy(objectAnchorGO[arObjectAnchor.referenceObjectName]); objectAnchorGO.Remove(arObjectAnchor.referenceObjectName); } }
void AddObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor added"); if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { Vector3 position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); Quaternion rotation = UnityARMatrixOps.GetRotation(arObjectAnchor.transform); objectAnchorGO = Instantiate <GameObject> (prefabToGenerate, position, rotation); } }
void ObjectAnchorUpdated(ARObjectAnchor anchorData) { Debug.Log("ObjectAnchorUpdated"); if (objectAnchorMap.ContainsKey(anchorData.referenceObjectName)) { GameObject go = objectAnchorMap [anchorData.referenceObjectName]; //do coordinate conversion from ARKit to Unity go.transform.position = UnityARMatrixOps.GetPosition(anchorData.transform); go.transform.rotation = UnityARMatrixOps.GetRotation(anchorData.transform); } }
void UpdateObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor updated"); if (objectMeans.Any(o => o.referenceObjectAsset.objectName.Equals(arObjectAnchor.referenceObjectName)) && objectAnchorGO.ContainsKey(arObjectAnchor.referenceObjectName)) { Vector3 position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); objectAnchorGO[arObjectAnchor.referenceObjectName].transform.position = position; objectAnchorGO[arObjectAnchor.referenceObjectName].transform.rotation = UnityARMatrixOps.GetRotation(arObjectAnchor.transform); } }
void AddObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor added"); if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); rotation = Quaternion.AngleAxis(180f, new Vector3(0.0f, 1.0f, 0.0f)) * UnityARMatrixOps.GetRotation(arObjectAnchor.transform); objectAnchorGO = Instantiate <GameObject> (prefabToGenerate, position, rotation); isDetected = true; } }
private void OnFoundThing(SCNNode node, ARObjectAnchor anchor) { adding = true; var size = anchor.ReferenceObject.Extent; var name = ReplacementNameFor(anchor.Name.Split('-')[0]); if (_alreadySeen.Contains(name)) { return; } _alreadySeen.Add(name); if (!_contentFor.TryGetValue(name, out var content)) { SoundManager.PlaySound("spooky"); adding = false; return; } NodeLookup[node] = node; var panel = Panels[content.Logo]; panel.Position = new SCNVector3(0, content.Offset, -.05f); node.AddChildNode(panel); var refSize = anchor.ReferenceObject.Extent; var invisiNode = new SCNNode { Geometry = new SCNBox { Height = refSize.Y, Width = refSize.X, Length = refSize.Z }, Position = new SCNVector3(0, .05f, 0) }; invisiNode.Geometry.FirstMaterial.Diffuse.Contents = UIColor.FromWhiteAlpha(1.0f, 0.05f); node.AddChildNode(invisiNode); NodeLookup[invisiNode] = node; node.Name = name; foreach (var sound in _contentFor.Values.Select(x => x.BGM)) { SoundManager.PauseSound(sound); } SoundManager.PlaySound(content.BGM, false); adding = false; }
void UpdateObjectAnchor(ARObjectAnchor arObjectAnchor) { Debug.Log("object anchor added"); if (arObjectAnchor.referenceObjectName == referenceObjectAsset.objectName) { position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); rotation = Quaternion.AngleAxis(180f, new Vector3(0.0f, 1.0f, 0.0f)) * UnityARMatrixOps.GetRotation(arObjectAnchor.transform); objectAnchorGO.transform.position = position; objectAnchorGO.transform.rotation = rotation; isDetected = true; } }
void AddObjectAnchor(ARObjectAnchor arObjectAnchor) { var objectMean = objectMeans.FirstOrDefault(o => o.referenceObjectAsset.objectName.Equals(arObjectAnchor.referenceObjectName)); if (objectMean != null && false == objectAnchorGO.ContainsKey(arObjectAnchor.referenceObjectName)) { Debug.Log($"object anchor added {arObjectAnchor.referenceObjectName}"); Vector3 position = UnityARMatrixOps.GetPosition(arObjectAnchor.transform); Quaternion rotation = UnityARMatrixOps.GetRotation(arObjectAnchor.transform); objectAnchorGO[arObjectAnchor.referenceObjectName] = Instantiate <GameObject>(prefabToGenerate, position, rotation); objectAnchorGO[arObjectAnchor.referenceObjectName].GetComponentInChildren <TMP_Text>().text = objectMean.meaning; } }
void ObjectAnchorAdded(ARObjectAnchor anchorData) { Debug.Log("ObjectAnchorAdded"); GameObject go = GameObject.Instantiate <GameObject> (m_ObjectPrefab); if (go != null) { //do coordinate conversion from ARKit to Unity go.transform.position = UnityARMatrixOps.GetPosition(anchorData.transform); go.transform.rotation = UnityARMatrixOps.GetRotation(anchorData.transform); objectAnchorMap [anchorData.referenceObjectName] = go; go.name = anchorData.referenceObjectName; ObjectText objText = go.GetComponent <ObjectText> (); if (objText) { objText.UpdateTextMesh(anchorData.referenceObjectName); } } }
internal void SuccessfulDetection(ARObjectAnchor objectAnchor) { // Compute the time it took to detect this object & the average lastDetectionDelayInSeconds = (DateTime.Now - lastDetectionStartTime).TotalSeconds; ++detections; averageDetectionDelayInSeconds = (averageDetectionDelayInSeconds * (1.0 * detections - 1) + lastDetectionDelayInSeconds) / (1.0 * detections); // Update the detected object's display duration DetectedObject.DisplayDuration = ResultDisplayDuration; // Immediately remove the anchor from the session again to force a re-detection. lastDetectionStartTime = DateTime.Now; sceneView.Session.RemoveAnchor(objectAnchor); if (sceneView.Session.CurrentFrame?.RawFeaturePoints != null) { var currentPointCloud = sceneView.Session.CurrentFrame?.RawFeaturePoints; DetectedObject?.UpdateVisualization(objectAnchor.Transform, currentPointCloud); } StartNoDetectionTimer(); }