예제 #1
0
        /**
         * <summary>Syncs the component with the correct scene.</summary>
         * <param name = "_multiSceneChecker">The MultiSceneChecker component in the scene for which this component is to sync with.</param>
         */
        public void Initialise(MultiSceneChecker _multiSceneChecker)
        {
            Scene scene = _multiSceneChecker.gameObject.scene;

            kickStarter = _multiSceneChecker.GetComponent <KickStarter>();

            sceneIndex      = scene.buildIndex;
            gameObject.name = "SubScene " + sceneIndex;

            localVariables = _multiSceneChecker.GetComponent <LocalVariables>();
            sceneSettings  = _multiSceneChecker.GetComponent <SceneSettings>();

            UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene(gameObject, scene);

            kickStarter = _multiSceneChecker.GetComponent <KickStarter> ();
            _multiSceneChecker.gameObject.SetActive(false);

            mainCamera = UnityVersionHandler.GetOwnSceneInstance <MainCamera> (gameObject);
            if (mainCamera)
            {
                mainCamera.gameObject.SetActive(false);
            }

            Player ownPlayer = UnityVersionHandler.GetOwnSceneInstance <Player> (gameObject);

            if (ownPlayer)
            {
                ownPlayer.gameObject.SetActive(false);
            }
            if (sceneSettings.OverridesCameraPerspective())
            {
                ACDebug.LogError("The added scene (" + scene.name + ", " + scene.buildIndex + ") overrides the default camera perspective - this feature should not be used in conjunction with multiple-open scenes.", gameObject);
            }
            KickStarter.sceneChanger.RegisterSubScene(this);
        }