//5.4 change. replaces OnLevelWasLoaded(int)
        private void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
        {
            Scene activeScene = arg0;

            if (!string.IsNullOrEmpty(trackingSceneName))
            {
                CognitiveVR_Preferences.SceneKeySetting lastSceneKeySettings = CognitiveVR_Preferences.Instance.FindScene(trackingSceneName);
                if (lastSceneKeySettings != null)
                {
                    if (lastSceneKeySettings.Track)
                    {
                        SendData();
                        CognitiveVR_Manager.OnTick -= CognitiveVR_Manager_OnTick;
                    }
                }

                CognitiveVR_Preferences.SceneKeySetting sceneKeySettings = CognitiveVR_Preferences.Instance.FindScene(activeScene.name);
                if (sceneKeySettings != null)
                {
                    if (sceneKeySettings.Track)
                    {
                        //Debug.Log("DO RECORD - " + sceneKeySettings.SceneName);
                        CognitiveVR_Manager.OnTick += CognitiveVR_Manager_OnTick;
                    }
                }
            }

            trackingSceneName = activeScene.name;
        }
        void OnLevelWasLoaded(int id)
        {
            Scene activeScene = SceneManager.GetActiveScene();

            if (!string.IsNullOrEmpty(trackingSceneName))
            {
                CognitiveVR_Preferences.SceneKeySetting lastSceneKeySettings = CognitiveVR_Preferences.Instance.FindScene(trackingSceneName);
                if (lastSceneKeySettings != null)
                {
                    if (lastSceneKeySettings.Track)
                    {
                        SendData();
                        CognitiveVR_Manager.OnTick -= CognitiveVR_Manager_OnTick;
                    }
                }

                CognitiveVR_Preferences.SceneKeySetting sceneKeySettings = CognitiveVR_Preferences.Instance.FindScene(activeScene.name);
                if (sceneKeySettings != null)
                {
                    if (sceneKeySettings.Track)
                    {
                        CognitiveVR_Manager.OnTick += CognitiveVR_Manager_OnTick;
                    }
                }
            }
            trackingSceneName = activeScene.name;
        }
Exemple #3
0
        void DisplaySceneKeySettings(CognitiveVR_Preferences.SceneKeySetting settings)
        {
            GUILayout.BeginHorizontal();

            settings.Track = GUILayout.Toggle(settings.Track, "", GUILayout.Width(toggleWidth));
            GUILayout.Label(settings.SceneName, GUILayout.Width(sceneWidth));

            if (Event.current.type == EventType.Repaint && string.IsNullOrEmpty(settings.SceneKey))
            {
                GUIStyle style = new GUIStyle(GUI.skin.textField);
                style.normal.textColor = new Color(0.5f, 0.5f, 0.5f, 0.75f);
                EditorGUILayout.TextField("a12345b6-78c9-01d2-3456-78e9f0ghi123", style);
            }
            else
            {
                settings.SceneKey = EditorGUILayout.TextField(settings.SceneKey, GUILayout.Width(keyWidth));
            }


            if (settings.Track)
            {
                bool validKey = KeyIsValid(settings.SceneKey);

                if (!validKey)
                {
                    if (settings.SceneKey.Contains("http://sceneexplorer.com/scene/"))
                    {
                        settings.SceneKey = settings.SceneKey.Replace("http://sceneexplorer.com/scene/", "");
                        GUI.FocusControl("NULL");
                    }
                    else if (settings.SceneKey.Contains("sceneexplorer.com/scene/"))
                    {
                        settings.SceneKey = settings.SceneKey.Replace("sceneexplorer.com/scene/", "");
                        GUI.FocusControl("NULL");
                    }

                    GUI.color = Color.red;
                    GUILayout.Button(new GUIContent("!", "ID is invalid! Should be similar to:\na12345b6-78c9-01d2-3456-78e9f0ghi123"), GUILayout.Width(14), GUILayout.Height(14));
                    GUI.color = Color.white;
                }
            }
#if UNITY_EDITOR_OSX
            EditorGUI.BeginDisabledGroup(true);
            GUILayout.Button(new GUIContent("Export Scene", "Exporting scenes is not available on Mac at this time"));
            EditorGUI.EndDisabledGroup();
#else
            if (GUILayout.Button(new GUIContent("Export Scene", "Load this scene and begin exporting with current export settings")))
            {
                UnityEditor.SceneManagement.EditorSceneManager.OpenScene(settings.ScenePath);
                CognitiveVR.CognitiveVR_EditorPrefs.ExportScene(true);
            }
#endif
            GUILayout.EndHorizontal();
        }
        //TODO level loaded stuff should use cognitivevr_manager events

        public override void CognitiveVR_Init(Error initError)
        {
            if (CognitiveVR_Manager.HMD != null)
            {
                periodicRenderer = CognitiveVR_Manager.HMD.GetComponent <PlayerTrackerHelper>();

                if (periodicRenderer == null)
                {
                    periodicRenderer         = CognitiveVR_Manager.HMD.gameObject.AddComponent <PlayerTrackerHelper>();
                    periodicRenderer.enabled = false;
                }
                cam = CognitiveVR_Manager.HMD.GetComponent <Camera>();
                cam.depthTextureMode = DepthTextureMode.Depth;
            }

            if (CognitiveVR_Preferences.Instance.SendDataOnQuit)
            {
                CognitiveVR_Manager.OnQuit += SendData;
            }

#if CVR_STEAMVR
            //if (CognitiveVR_Preferences.Instance.SendDataOnHMDRemove)
            //CognitiveVR_Manager.OnPoseEvent += CognitiveVR_Manager_OnPoseEvent;
#endif

#if UNITY_5_4
            //if (CognitiveVR_Preferences.Instance.SendDataOnLevelLoad)
            SceneManager.sceneLoaded += SceneManager_sceneLoaded;
#endif

            string sceneName = SceneManager.GetActiveScene().name;

            CognitiveVR_Preferences.SceneKeySetting sceneSettings = CognitiveVR.CognitiveVR_Preferences.Instance.FindScene(sceneName);
            if (sceneSettings != null)
            {
                if (sceneSettings.Track)
                {
                    BeginPlayerRecording();
                }
                //else
                //Debug.Log("PlayerRecorderTracker - don't track this scene " + sceneName);
            }
            else
            {
                //Debug.Log("PlayerRecorderTracker - startup couldn't find scene -" + sceneName);
            }
            trackingSceneName = SceneManager.GetActiveScene().name;
        }