private void OnTrackingLost() { Renderer[] rendererComponents = GetComponentsInChildren <Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren <Collider>(true); // Disable rendering: foreach (Renderer component in rendererComponents) { component.enabled = false; } // Disable colliders: foreach (Collider component in colliderComponents) { component.enabled = false; } Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost"); //delete all children if (control) { BaseVentanaController bvc = control.GetComponent <BaseVentanaController>(); if (bvc) { bvc.OnVumarkLost(); } } mTrackableBehaviour.transform.DestroyChildren(); }
private void OnTrackingFound() { Renderer[] rendererComponents = GetComponentsInChildren <Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren <Collider>(true); // Enable rendering: foreach (Renderer component in rendererComponents) { component.enabled = true; } // Enable colliders: foreach (Collider component in colliderComponents) { component.enabled = true; } Debug.Log("VuMark of Type: " + GetVuMarkType(mTrackableBehaviour.VuMarkTarget) + " and Value: " + GetVuMarkString(mTrackableBehaviour.VuMarkTarget) + " found"); ModelController mc = ModelController.Instance; int vuMarkId = Convert.ToInt32(GetVuMarkString(mTrackableBehaviour.VuMarkTarget), 16); control = null; try { control = mc.GetPrefabWithId(vuMarkId); if (control) { mTrackableBehaviour.transform.DestroyChildren(); BaseVentanaController bvc = control.GetComponent <BaseVentanaController>(); if (bvc) { bvc.OnVumarkFound(); bvc.VentanaID = vuMarkId; } control.transform.SetParent(gameObject.transform); control.transform.localPosition = new Vector3(0f, 0f, 1.3f); control.transform.localRotation = Quaternion.Euler(90f, 0f, 0f); control.layer = 9; control.transform.localScale = new Vector3(.35f, .35f, .35f); SpawnBehaviourScript spb = control.gameObject.AddComponent <SpawnBehaviourScript>(); spb.ControllerID = vuMarkId; spb.shouldSpawn = true; spb.scaleMultiplier = gameObject.transform.localScale; } } catch (Exception ex) { Debug.Log("[VuMarkEventHandler]: " + ex.Message); } }
private void OnWorldAnchorStoreLoaded(WorldAnchorStore store) { var persistentGameObject = GameObject.Find("persistentGameObject"); persistentGameObjectScript persistentScript = persistentGameObject.GetComponent <persistentGameObjectScript>(); if (persistentScript.loadWorldAnchors) { Debug.Log("LOADING WORLD ANCHORS"); var ids = store.GetAllIds(); foreach (var id in ids) { char[] delimiterChars = { ':' }; string[] anchorInfo = id.ToString().Split(delimiterChars); Debug.Log("<color=yellow>Anchor ID:" + anchorInfo[0] + " Lossy Scale: " + anchorInfo[1] + " Creation Time: " + anchorInfo[2]); ModelController mc = ModelController.Instance; int integerID = Convert.ToInt32(anchorInfo[0]); try { GameObject go = mc.GetPrefabWithId(integerID); BaseVentanaController bvc = go.GetComponent <BaseVentanaController>(); if (bvc) { bvc.OnVumarkFound(); bvc.VentanaID = integerID; } HandDraggable hd = go.AddComponent <HandDraggable>(); hd.enabled = false; hd.RotationMode = HandDraggable.RotationModeEnum.OrientTowardUserAndKeepUpright; hd.IsDraggingEnabled = true; float scaleVal = float.Parse(anchorInfo[1], CultureInfo.InvariantCulture.NumberFormat); go.transform.localScale = new Vector3(scaleVal, scaleVal, scaleVal); store.Load(id, go); } catch (Exception ex) { Debug.Log("[Anchor Loader] " + ex.Message); } } } else { store.Clear(); Debug.Log("World Anchor Store CLEARED"); } }
void scaleEnded() { BaseVentanaController bvc = gameObject.GetComponent <BaseVentanaController>(); if (bvc) { Debug.Log(gameObject.name + " : Removing existing world anchor if any after scaling"); WorldAnchorManager.Instance.RemoveAnchor(gameObject); string currentTime = DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds.ToString(); string savedAnchorName = bvc.VentanaID + ":" + gameObject.transform.lossyScale.x.ToString() + ":" + currentTime; Debug.Log("<color=yellow>Name: </color>" + savedAnchorName); WorldAnchorManager.Instance.AttachAnchor(gameObject, savedAnchorName); } }
private void HandDraggable_StoppedDragging() { SpatialMappingManager.Instance.DrawVisualMeshes = false; isDragging = false; // Add world anchor when object placement is done. BaseVentanaController bvc = gameObject.GetComponent <BaseVentanaController>(); if (bvc) { string currentTime = DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds.ToString(); string savedAnchorName = bvc.VentanaID + ":" + gameObject.transform.lossyScale.x.ToString() + ":" + currentTime; Debug.Log("<color=yellow>Name: </color>" + savedAnchorName); WorldAnchorManager.Instance.AttachAnchor(gameObject, savedAnchorName); } source.PlayOneShot(clickSound, 1F); }