示例#1
0
        /// <summary>
        /// 直接切换
        /// </summary>
        /// <param name="_sceneType"></param>
        public void ChangeSceneDirect(ScnType _sceneType)
        {
            UIManager.Instance.CloseUIAll();

            if (CurrentScene != null)
            {
                CurrentScene.Release();
                CurrentScene = null;
            }

            LastSceneType   = ChangeSceneType;
            ChangeSceneType = _sceneType;
            SceneInfoData sid       = GetSceneInfo(_sceneType);
            string        sceneName = GetSceneName(_sceneType);

            //change scene
            MonoHelper.Instance.StartCoroutine(AsyncLoadScene(sceneName, () =>
            {
                // 注册场景Module
                ModuleManager.Instance.RegisterModule(sid.SceneType);

                if (sceneOpenUIType != UIType.None)
                {
                    UIManager.Instance.OpenUICloseOthers(sceneOpenUIType, false, sceneOpenUIParams);
                    sceneOpenUIType = UIType.None;
                }
            }));
        }
示例#2
0
 public void UnRegisterScene(ScnType _sceneID)
 {
     if (dicSceneInfos.ContainsKey(_sceneID))
     {
         dicSceneInfos.Remove(_sceneID);
     }
 }
示例#3
0
 public string GetSceneName(ScnType _sceneID)
 {
     if (dicSceneInfos.ContainsKey(_sceneID))
     {
         return(dicSceneInfos[_sceneID].SceneName);
     }
     Debug.LogError("This Scene is not register! ID: " + _sceneID.ToString());
     return(null);
 }
示例#4
0
        /// <summary>
        /// 场景切换
        /// </summary>
        /// <param name="_sceneType"></param>
        /// <param name="_uiType"></param>
        /// <param name="_params"></param>
        public void ChangeSceneDirect(ScnType _sceneType, UIType _uiType, params object[] _params)
        {
            sceneOpenUIType   = _uiType;
            sceneOpenUIParams = _params;

            if (ChangeSceneType != _sceneType)
            {
                ChangeSceneDirect(_sceneType);
            }
        }
示例#5
0
 /// <summary>
 /// 关卡管理类注册
 /// </summary>
 /// <param name="_sceneID">关卡ID</param>
 /// <param name="_sceneName">关卡名</param>
 /// <param name="_sceneType">关卡管理类</param>
 /// <param name="_params">参数</param>
 private void RegisterScene(ScnType _sceneID, string _sceneName, Type _sceneType, params object[] _params)
 {
     if (_sceneType == null || _sceneType.BaseType != typeof(BaseScene))
     {
         throw new Exception("Register scene type must not null and extends BaseScene");
     }
     if (!dicSceneInfos.ContainsKey(_sceneID))
     {
         SceneInfoData sceneInfo = new SceneInfoData(_sceneName, _sceneType, _params);
         dicSceneInfos.Add(_sceneID, sceneInfo);
     }
 }
示例#6
0
        internal BaseScene GetBaseScene(ScnType _sceneType)
        {
            Debug.Log(" GetBaseScene  sceneId = " + _sceneType.ToString());
            SceneInfoData sceneInfo = GetSceneInfo(_sceneType);

            if (sceneInfo == null || sceneInfo.SceneType == null)
            {
                return(null);
            }
            BaseScene scene = System.Activator.CreateInstance(sceneInfo.SceneType) as BaseScene;

            return(scene);
        }
示例#7
0
        public void ChangeScene(ScnType _sceneType)
        {
            UIManager.Instance.CloseUIAll();

            if (CurrentScene != null)
            {
                CurrentScene.Release();
                CurrentScene = null;
            }
            LastSceneType   = ChangeSceneType;
            ChangeSceneType = _sceneType;
            //change loading scene
            MonoHelper.Instance.StartCoroutine(AsyncLoadOtherScene());
        }
示例#8
0
 /// <summary>
 /// 加载有过渡loading的界面切换
 /// </summary>
 /// <param name="_sceneType"></param>
 /// <param name="_uiType"></param>
 /// <param name="_params"></param>
 public void ChangeScene(ScnType _sceneType, UIType _uiType, params object[] _params)
 {
     sceneOpenUIType   = _uiType;
     sceneOpenUIParams = _params;
     if (LastSceneType == _sceneType)
     {
         if (sceneOpenUIType == UIType.None)
         {
             return;
         }
         UIManager.Instance.OpenUI(sceneOpenUIType, false, sceneOpenUIParams);
         sceneOpenUIType = UIType.None;
     }
     else
     {
         ChangeScene(_sceneType);
     }
 }
示例#9
0
文件: Scn.cs 项目: unicloud/FRP
 /// <summary>
 ///     设置SCN类型
 /// </summary>
 /// <param name="type">SCN类型</param>
 public void SetType(ScnType type)
 {
     Type = type;
 }
示例#10
0
 public bool IsRegisterScene(ScnType _sceneID)
 {
     return(dicSceneInfos.ContainsKey(_sceneID));
 }