示例#1
0
    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();
    }
示例#2
0
    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);
        }
    }
示例#3
0
    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");
        }
    }
示例#4
0
    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);
        }
    }
示例#5
0
    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);
    }