Пример #1
0
    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        GameObject ssh = GameObject.Find("SceneSaveHandler");

        if (ssh)
        {
            currentSceneSaveHandler = ssh.GetComponent <SceneSaveHandler>();
        }

        //only do this on load from main menu
        if (!didLoadFromMenu /*&& RunOnTheFly.RunOnTheFlyReference.simulateFromMenu*/)
        {
            spawnLocation = MainMenu.GetLocationToSpawn();
            StartCoroutine(DelaySetSpawnLocationOnLoad());

            didLoadFromMenu = true;
        }

        if (scene.name.Equals("MainMenu"))
        {
            didLoadFromMenu = false;                                        //need to also destroy player object
        }
        if (scene.name.Equals("MainCabin") || scene.name.Equals("Workshop"))
        {
            stateDrivenCamera.enabled = false;
            CharacterInputController.SetCanRun(false);

            if (scene.name.Equals("MainCabin"))
            {
                GameObject.Find("CM_ClearShotCamera_MainCabin").GetComponent <CinemachineClearShot>().m_LookAt = playerLookAt;
            }
            if (scene.name.Equals("Workshop"))
            {
                GameObject.Find("CM_VirtualCamera_Workshop").GetComponent <CinemachineVirtualCamera>().m_LookAt = playerLookAt;
            }
        }
        else
        {
            stateDrivenCamera.enabled = true;
            CharacterInputController.SetCanRun(true);
        }

        if (scene.name.Equals("MainCabin"))
        {
            transform.localScale = new Vector3(1.25f, 1.25f, 1.25f);
        }
        else
        {
            transform.localScale = Vector3.one;
        }
    }