Esempio n. 1
0
 private void ClearScene()
 {
     if (activeScene != null)
     {
         activeScene.LeaveScene();
         GameObject.Destroy(activeScene.gameObject);
         activeScene = null;
     }
 }
Esempio n. 2
0
        //执行进入场景的代码逻辑
        IEnumerator EnterScene(GCEnterScene sceneData)
        {
            Log.Sys("EnterNextScene is " + nextSceneId);

            var sdata = CopyController.copyController.GetLevelInfo(nextSceneId);

            NextScene = sdata;
            //删除旧的场景中的玩家数据
            if (activeScene != null)
            {
                activeScene.LeaveScene();
                GameObject.Destroy(activeScene.gameObject);
            }

            activeScene = CScene.CreateScene(sdata);
            activeScene.Init();
            activeScene.EnterScene();

            //Init Camera
            Log.Sys("Load Scene Name is " + sdata.SceneName);

            //等待加载静态场景资源
            AsyncOperation async = Application.LoadLevelAsync(sdata.SceneName);

            loadUI.async = async;
            loadUI.ShowLoad("等待");
            while (!async.isDone)
            {
                yield return(null);
            }
            //InitCamera After Load Scene
            //Scene Load Finish Then Load MainCamera

            if (CameraController.cameraController == null)
            {
                Log.Sys("CreateMainCamera");
                var mc = Resources.Load <GameObject> ("levelPublic/MainCamera");
                Instantiate(mc); //  as GameObject;

                var lm  = Resources.Load <GameObject>("LightCamera");
                var lm2 = Instantiate(lm) as GameObject;
                lm2.GetComponent <Camera>().orthographicSize = GraphInit.Instance.lightShadowCameraSize;

                var sc = Instantiate(Resources.Load <GameObject>("levelPublic/ShadowCamera")) as GameObject;
                sc.GetComponent <Camera>().orthographicSize = GraphInit.Instance.lightShadowCameraSize;
            }


            if (BattleManager.battleManager == null)
            {
                var g = new GameObject("BattleManager");
                g.AddComponent <BattleManager>();
            }
            {
                var g = new GameObject("NpcManager");
                g.AddComponent <NpcManager>();
            }
            activeScene.ManagerInitOver();

            Log.Sys("Cameramain " + Camera.main);

            MyEventSystem.myEventSystem.PushEvent(MyEvent.EventType.EnterScene);
            //正在进入一个场景
            yield return(null);

            var g1        = new GameObject("StreamLoadLevel");
            var loader    = g1.AddComponent <StreamLoadLevel>();
            var water     = g1.AddComponent <WaterEnvLoader>();
            var netLoader = g1.AddComponent <NetworkLoadZone>();

            yield return(StartCoroutine(loader.LoadFirstRoom()));

            var start = GameObject.Find("PlayerStart");

            CameraController.cameraController.TracePositon(start.transform.position);


            NetDebug.netDebug.AddConsole("LoadScene Finish start Init UI");

            CreateUI();

            NetDebug.netDebug.AddConsole("CreateMyPlayer");
            //场景传送点
            CreateMyPlayer();
            //load Success
            //loadUI.Hide (null);
            NetDebug.netDebug.AddConsole("Init Player Over Next");
            station = WorldStation.Enter;

            //场景其它初始化交给LevelInit
            NetDebug.netDebug.AddConsole("WorldManager:: InitLevel");
            CreateLevelInit();
            //初始化缓存的场景玩家
            //ObjectManager.objectManager.InitCache ();
            NetDebug.netDebug.AddConsole("Init World Finish");

            StartCoroutine(loader.LoadRoomNeibor());
        }
Esempio n. 3
0
        /// <summary>
        /// 初始化各个子模块
        /// </summary>
        public void InitData()
        {
            CScene.InitStatic();
            var g = gameObject;

            if (NotifyUIManager.Instance == null)
            {
                g.AddComponent <NotifyUIManager>();
            }
            if (BackPack.backpack == null)
            {
                var back = new GameObject("backpack");
                back.transform.parent = transform;
                back.AddComponent <BackPack>();
            }
            if (SkillDataController.skillDataController == null)
            {
                var skill = new GameObject("skill");
                skill.transform.parent = transform;
                skill.AddComponent <SkillDataController>();
            }


            if (CopyController.copyController == null)
            {
                var copy = new GameObject();
                copy.AddComponent <CopyController>();
                copy.transform.parent = g.transform;
            }

            if (WorldManager.worldManager == null)
            {
                var world = new GameObject("WorldManager");
                world.transform.parent = g.transform;
                world.AddComponent <WorldManager>();
            }

            if (ObjectManager.objectManager == null)
            {
                var go = new GameObject("ObjectManager");
                go.AddComponent <ObjectManager>();
            }


            if (CursorManager.cursorManager == null)
            {
                var t = CursorManager.cursorManager;
                t.transform.parent = g.transform;
            }

            characters = new List <GameObject>();
            if (saveData == null)
            {
                saveData = new JSONClass();
                saveData ["characters"]       = new JSONArray();
                saveData ["lastSelect"].AsInt = -1;
            }

            /*
             * if (MyEventSystem.myEventSystem == null) {
             *  var evt = new GameObject();
             *  evt.name = "EventSystem";
             *  evt.AddComponent<MyEventSystem>();
             * }
             * MyEventSystem.myEventSystem.transform.parent = g.transform;
             */
            MyEventSystem.myEventSystem.InitEventHandler();

            /*
             * if (TeamController.teamController == null)
             * {
             *  var tempObj = new GameObject("TeamController");
             *  tempObj.AddComponent<TeamController>();
             *  tempObj.transform.parent = transform;
             * }
             */
            if (BuffManager.buffManager == null)
            {
                var tempObj = new GameObject("BuffManager");
                tempObj.AddComponent <BuffManager>();
                tempObj.transform.parent = transform;
            }
            var eff = new GameObject("EffectMainNode");

            eff.transform.parent = transform;
            EffectMainNode       = eff;

            InitYet = true;
        }