Esempio n. 1
0
        void Awake()
        {
            if (_launchManager != null)
            {
                DestroyImmediate(this.gameObject);
                return;
            }

            if (_launchManager == null)
            {
                _launchManager = this;
                DontDestroyOnLoad(this);
                FirstPersonController = GameObjectUtils.InstatiatePrefab("Prefabs/Player/FPSController");// GameObject.FindGameObjectWithTag("Player");
                FirstPersonController.SetActive(false);
                DontDestroyOnLoad(FirstPersonController);
                MenuCanvas = GameObjectUtils.InstatiatePrefab("Prefabs/Menus/Canvas"); GameObject.FindGameObjectWithTag("MenuCanvas");
                MenuCanvas.GetComponent <Canvas>().worldCamera = GameObject.FindWithTag("MainCamera").GetComponent <Camera>();
                DontDestroyOnLoad(MenuCanvas);

                SceneManager.sceneLoaded += OnSceneLoaded;
            }


            ReadExperimentSettings();

            _filePathParticipants = Application.persistentDataPath + "/participant_files/";;
            var dirInf = new DirectoryInfo(_filePathParticipants);

            if (!dirInf.Exists)
            {
                Debug.Log("Creating subdirectory for participant data"); dirInf.Create();
                Debug.Log("Data stored at " + _filePathParticipants);
                dirInf.Create();
            }
            MenuManager = MenuCanvas.GetComponent <MenuManager>();

            MenuCanvas.GetComponent <CanvasScaler>().referenceResolution = ExperimentSettings.UISettings.ManuallySetResolution?ExperimentSettings.UISettings.ReferenceResolution:new Vector2(Screen.currentResolution.width, Screen.currentResolution.height);
            QuestionnaireManager = gameObject.GetComponent <QuestionnaireManager>();

            SessionParameters = new Dictionary <string, string>();


            LoggingManager = new LoggingManager();
            var connected = LoggingManager.ConnectToServer(ExperimentSettings.DatabaseSettings);

            _initialized = false;
            if (!connected)
            {
                MenuManager.DisplayErrorMessage("Unable to connect to the database! Press ok to check the database status", "Database Configuration Menu", "Launcher");
            }
            else
            {
                MenuManager.InstantiateAndShowMenu(ExperimentSettings.MenuSettings.FirstMenu, "Launcher");
                LoadSettingsIntoDatabase();
                SessionId = LoggingManager.CurrentSessionId;
            }

            if (ShouldCreateExampleQuestionnaire)
            {
                QuestionnaireUtils.CreateExampleQuestionnaire(LoggingManager, ExperimentSettings);
            }
        }