예제 #1
0
    IEnumerator UpdateNewRoomCoroutine()
    {
        Resources.UnloadUnusedAssets();
        Cursor.visible = false;

        //GenericLog.Log("UPDATE NEW ROOM COROUTINE");
        m_isSceneLoaded = false;
        m_isClicEnabled = false;

        //m_loadingIcon.SetActive(true);

        if (m_SEGMentEngine.isRoomChangeImmediate())
        {
            m_UIManager.SetFadeInOutTime(0.0f);
        }
        else
        {
            m_UIManager.SetFadeInOutTime(m_sceneFadeInOutTime);
        }

        PreventClickOnStateObject();
        m_UIManager.SceneFadeOut();

        List <string> transitionSoundsToPlay = m_SEGMentEngine.PopTransitionSounds();

        foreach (string soundToPlay in transitionSoundsToPlay)
        {
            AudioManager.instance.PlaySoundByURL(SEGMentPath.instance.GetSoundPath(soundToPlay));
        }

        while (!m_UIManager.IsSceneFadedOut())
        {
            yield return(null);
        }

        ZoomOnClic zoomManager = GetComponent <ZoomOnClic>();

        if (zoomManager != null)
        {
            zoomManager.reinit();
        }

        //Camera.main.orthographicSize = m_initialOrthoSize;



        StartCoroutine("UpdateSceneCoroutine");

        while (!m_isSceneLoaded)
        {
            yield return(null);
        }

        UpdateUI();

        //m_loadingIcon.SetActive(false);

        m_UIManager.SceneFadeIn();
        Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
        Cursor.visible  = true;
        m_isClicEnabled = true;
    }
예제 #2
0
    void Update()
    {
        if (!m_initIsDone)
        {
            return;
        }

        m_SEGMentEngine.Update(Time.deltaTime);


        /*if (Input.GetKeyDown(KeyCode.R)) {
         *      foreach (KeyValuePair<int, GameObject> currentDictionnaryItem in m_sceneItemsBySEGMentIndex) {
         *              PuzzleBehavior currentBehavior = currentDictionnaryItem.Value.GetComponent<PuzzleBehavior>();
         *
         *              if (currentBehavior != null) {
         *                      if (currentBehavior.IsDragDropEnabled()) {
         *                              currentBehavior.RandomizePos();
         *                      }
         *              }
         *      }
         *
         * }*/

        if (Input.GetKeyDown(KeyCode.Space))
        {
            LogPlayerCurrentInformation();
        }         /*else if (Input.GetKeyDown(KeyCode.Escape)) {
                   *    MetricLogger.instance.Log("SEGMENT_RUNNING", false);
                   *    Application.Quit();
                   *
                   #if UNITY_EDITOR
                   *    UnityEditor.EditorApplication.isPlaying = false;
                   #endif*/
        // m_SEGMentEngine.UserAnswer("Solution");
        //}

        List <PLAYER_MODIF_INFO> playerChanges = m_SEGMentEngine.PopPlayerModifInfos();

        foreach (PLAYER_MODIF_INFO currentInfo in playerChanges)
        {
            if (currentInfo == PLAYER_MODIF_INFO.PLAYER_MOVED)
            {
                StartCoroutine("UpdateNewRoomCoroutine");
            }
        }

        if (m_SEGMentEngine.IsDiagramFileModifiedSinceLoad())
        {
            m_UIManager.DiagramFileHasBeenModified();
        }

        ZoomOnClic zoomManager = GetComponent <ZoomOnClic>();

        if (zoomManager != null)
        {
            if (zoomManager.IsZooming())
            {
                m_lastZoomTime = Time.fixedTime;
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            UpdatePuzzleChecker(m_roomID);
            if (ComputePuzzleCheck(m_roomID))
            {
                m_SEGMentEngine.PuzzleSolutionValidated();
                //Debug.Log("YEAHHHHHHH !");
            }
        }


        if (m_isSceneLoaded)
        {
            if (CheckStateObjectSolutions())
            {
                m_SEGMentEngine.ObjectStateSolutionValidated();
                PreventClickOnStateObject();


                m_objectStateToSolutionCheck.Clear();
            }
        }
    }