Пример #1
0
 public override void Begin()
 {
     sceneType    = LoadSceneType.One;
     prefabPanel  = m_canvas.transform.Find("LoadPanel").gameObject;
     sprites      = Resources.LoadAll <Sprite>("Background");
     OneTypePanel = prefabPanel.transform.Find("LoadPanelOne").gameObject;
     TwoTypePanel = prefabPanel.transform.Find("LoadGamePanel").gameObject;
 }
Пример #2
0
 /// <summary>
 /// 全局读取场景事件,在读取场景之前运行
 /// </summary>
 /// <param name="buildIndex"></param>
 /// <param name="sceneName"></param>
 /// <param name="type"></param>
 /// <param name="mode"></param>
 /// <param name="async"></param>
 protected override void OnLoadScene(int buildIndex, string sceneName, LoadSceneType type, LoadSceneMode mode, bool async)
 {
     // 如果是异步的,打开Loading面板
     if (async)
     {
         TestUIManager.views.OpenViewNotStack(TestUINames.Panel_TestUILoadingPanel, false, sceneName);
     }
 }
Пример #3
0
 /// <summary>
 /// Request a scene using a given loading type.
 /// </summary>
 /// <param name="loadType">Load type.</param>
 /// <param name="sceneName">Scene name.</param>
 public void RequestScene(LoadSceneType loadType, string sceneName)
 {
     if (!_loadScene)
     {
         _requestedSceneName = sceneName;
         _loadScene          = true;
         _loadType           = loadType;
         //only close screens, not overlays
         ScreenClose(_currentScreen.GetType());
     }
 }
Пример #4
0
    /// <summary>
    /// 设置切换到下一个场景
    /// </summary>
    /// <param name="state"></param>
    /// <param name="LoadSceneName"></param>
    /// <param name="sceneType"></param>
    /// <param name="Speed"></param>
    public void SetNextSceneState(string LoadSceneName, LoadSceneType sceneType, float Speed)
    {
        indexNumber          = 0;
        this.m_NextSceneName = LoadSceneName;
        this.sceneType       = sceneType;
        this.m_Speed         = Speed;

        if (m_Background != null)
        {
            m_Background.sprite = sprites[Random.Range(0, sprites.Length)];
        }
        //切换面板状态
        ChangePanelType();
    }
Пример #5
0
        /// <summary>
        /// 开始读取场景
        /// </summary>
        /// <param name="scene"></param>
        /// <param name="mode"></param>
        /// <param name="async"></param>
        /// <param name="progress"></param>
        private void LoadScene(int buildIndex, string sceneName, LoadSceneType type, LoadSceneMode mode, bool async, Action <float> progress)
        {
            if (m_EditorLog)
            {
                Debug.LogFormat(
                    "Globle -> Before Load Scene({0}). Type({1}) Mode({2}) Async({3})",
                    type == LoadSceneType.BuildIndex ? buildIndex.ToString() : sceneName,
                    type.ToString(),
                    mode.ToString(),
                    async.ToString()
                    );
            }

            OnLoadScene(buildIndex, sceneName, type, mode, async);

            // 发送开始读取场景事件
            s_OnLoadSceneArgs.activeScene = SceneManager.GetActiveScene();
            s_OnLoadSceneArgs.buildIndex  = buildIndex;
            s_OnLoadSceneArgs.sceneName   = sceneName;
            s_OnLoadSceneArgs.type        = type;
            s_OnLoadSceneArgs.mode        = mode;
            s_OnLoadSceneArgs.async       = async;
            this.SendByMessageCenter(k_Event_OnLoadScene, s_OnLoadSceneArgs);

            if (type == LoadSceneType.BuildIndex)
            {
                if (async)
                {
                    AsyncOperation operation = SceneManager.LoadSceneAsync(buildIndex, mode);
                    StartCoroutine(LoadingOrUnloadingScene(operation, progress));
                }
                else
                {
                    SceneManager.LoadScene(buildIndex, mode);
                }
            }
            else
            {
                if (async)
                {
                    AsyncOperation operation = SceneManager.LoadSceneAsync(sceneName, mode);
                    StartCoroutine(LoadingOrUnloadingScene(operation, progress));
                }
                else
                {
                    SceneManager.LoadScene(sceneName, mode);
                }
            }
        }
Пример #6
0
 /// <summary>
 /// 用于override的全局开始读取场景事件,在读取场景之前执行
 /// </summary>
 /// <param name="buildIndex"></param>
 /// <param name="sceneName"></param>
 /// <param name="type"></param>
 /// <param name="mode"></param>
 /// <param name="async"></param>
 protected virtual void OnLoadScene(int buildIndex, string sceneName, LoadSceneType type, LoadSceneMode mode, bool async)
 {
 }
Пример #7
0
 public LoadSceneData(LoadSceneType loadSceneType, float Progress, object loadSceneInfo)
 {
     this.loadSceneType = loadSceneType;
     this.Progress      = Progress;
     this.LoadSceneInfo = loadSceneInfo;
 }
Пример #8
0
 public LoadSceneData(LoadSceneType loadSceneType, float Progress)
 {
     this.loadSceneType = loadSceneType;
     this.Progress      = Progress;
 }
Пример #9
0
 public LoadSceneInfo(ESceneID sceneID, LoadSceneType type, LoadSceneMode mode)
 {
     this.sceneID  = sceneID;
     this.loadType = type;
     this.mode     = mode;
 }
Пример #10
0
 /// <summary>
 /// 对外提供设置加载状态方式
 /// </summary>
 /// <param name="type"></param>
 /// <param name="speed"></param>
 public void SetNextSceneSpeedandType(LoadSceneType type = LoadSceneType.One, float speed = 30)
 {
     m_sceneType = type;
     m_speed     = speed;
 }
Пример #11
0
 /// <summary>
 /// Request a scene, and open the specified overlay when scene finishes loading.
 /// </summary>
 /// <param name="loadType">Load type.</param>
 /// <param name="sceneName">Scene name.</param>
 /// <typeparam name="T">The 1st type parameter.</typeparam>
 public void RequestSceneWithOverlay <T>(LoadSceneType loadType, string sceneName) where T : AbstractView
 {
     RequestSceneWithOverlay(typeof(T), loadType, sceneName);
 }
Пример #12
0
 /// <summary>
 /// Request a scene, and open the specified view when scene finishes loading.
 /// </summary>
 /// <param name="viewType">View type.</param>
 /// <param name="loadType">Load type.</param>
 /// <param name="sceneName">Scene name.</param>
 public void RequestSceneWithView(Type viewType, LoadSceneType loadType, string sceneName)
 {
     _manager.RequestSceneWithView(viewType, loadType, sceneName);
 }
Пример #13
0
 public void RequestScene(LoadSceneType loadingType, string sceneName)
 {
     _manager.RequestScene(loadingType, sceneName);
 }
Пример #14
0
 /// <summary>
 /// Request a scene, and open the specified view when scene finishes loading.
 /// </summary>
 /// <param name="viewType">View type.</param>
 /// <param name="loadType">Load type.</param>
 /// <param name="sceneName">Scene name.</param>
 public void RequestSceneWithOverlay(Type viewType, LoadSceneType loadType, string sceneName)
 {
     OpenOverlayWhenSceneLoads(viewType, sceneName);
     RequestScene(loadType, sceneName);
 }
Пример #15
0
 /// <summary>
 /// Request a scene, and open the specified view when scene finishes loading.
 /// </summary>
 /// <param name="viewType">View type.</param>
 /// <param name="loadType">Load type.</param>
 /// <param name="sceneName">Scene name.</param>
 public void RequestSceneWithView(Type viewType, LoadSceneType loadType, string sceneName)
 {
     OpenViewWhenSceneLoads(viewType, sceneName);
     RequestScene(loadType, sceneName);
 }