zoukankan      html  css  js  c++  java
  • 场景同步异步加载

    using System;
    using System.Collections;
    using UnityEngine;
    using UnityEngine.Events;
    using UnityEngine.SceneManagement;
    
    public class SceneComponent : GameComponent
    {
        public UnityAction beginLoad;
        public float LoadProgress { get; private set; }
    
        public void Awake()
        {
            Initinalize();
        }
        public override void Initinalize()
        {
            base.Initinalize();
        }
        public override void Release()
        {
    
        }
        public override void Update()
        {
    
        }
        public void LoadScene(string name)
        {
            SceneManager.LoadScene(name);
            if (beginLoad!=null)
            {
                beginLoad();
            }
        }
        public void LoadSceneAsync(string name, bool showLoadingUI=false, Action onComplete = null)
        {
            StartCoroutine(LoadSceneAsyn(name,showLoadingUI,onComplete));
        }
        private IEnumerator LoadSceneAsyn(string name,bool showLoadingUI=false,Action onComplete=null)
        {
            AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(name);
            asyncOperation.allowSceneActivation = false;
            if (beginLoad!=null)
            {
                beginLoad();
            }
            if (showLoadingUI)
            {
                m_GameManager.GetGameSystem<UISystem>().GetUIView<LoadingView>().Show();
                yield return null;
            }
            LoadProgress = 0;
            while (asyncOperation.progress<0.9f)
            {
                LoadProgress = asyncOperation.progress;
                yield return null;
            }
            yield return new WaitForSeconds(2);
            while (LoadProgress < 1)
            {
                LoadProgress += 0.1f;
                yield return null;
            }
            asyncOperation.allowSceneActivation = true;
            if (showLoadingUI)
            {
                m_GameManager.GetGameSystem<UISystem>().GetUIView<LoadingView>().Hide();
            }
            if (onComplete != null)
            {
                onComplete();
            }
        }
    }
  • 相关阅读:
    *HDU 1392 计算几何
    *HDU 1115 计算几何
    *HDU 1086 计算几何
    *HDU 2108 计算几何
    HDU 1528 贪心模拟/二分图
    HDU 1281 二分图
    *HDU1150 二分图
    *HDU1151 二分图
    *HDU 1068 二分图
    *HDU 1054 二分图
  • 原文地址:https://www.cnblogs.com/DazeJiang/p/14269279.html
Copyright © 2011-2022 走看看