Ejemplo n.º 1
0
        private IEnumerator LoadGameScene()
        {
            OnMessage("正在初始化");
            Assets.runtimeMode = !development;
            var init = Assets.Initialize();

            yield return(init);

            if (string.IsNullOrEmpty(init.error))
            {
                Assets.AddSearchPath("Assets/HotUpdateResources/Controller");
                Assets.AddSearchPath("Assets/HotUpdateResources/Dll");
                Assets.AddSearchPath("Assets/HotUpdateResources/Material");
                Assets.AddSearchPath("Assets/HotUpdateResources/Other");
                Assets.AddSearchPath("Assets/HotUpdateResources/Prefab");
                Assets.AddSearchPath("Assets/HotUpdateResources/Scene");
                Assets.AddSearchPath("Assets/HotUpdateResources/ScriptableObject");
                Assets.AddSearchPath("Assets/HotUpdateResources/TextAsset");
                Assets.AddSearchPath("Assets/HotUpdateResources/UI");
                init.Release();

                OnProgress(0);
                OnMessage("加载游戏场景");

                var scene = Assets.LoadSceneAsync(gameScene, false);
                scene.completed += (AssetRequest request) =>
                {
                    FindObjectOfType <Init>().Load();
                    ClassBindMgr.Instantiate();
                    FindObjectOfType <Init>().OnHotFixLoaded();
                };
                while (!scene.isDone)
                {
                    OnProgress(scene.progress);
                    yield return(null);
                }
            }
            else
            {
                init.Release();
                var mb = MessageBox.Show("提示", "初始化异常错误:" + init.error + "请联系技术支持");
                yield return(mb);

                Quit();
            }
        }
Ejemplo n.º 2
0
    private void Awake()
    {
        if (Instance != null)
        {
            Destroy(Instance.gameObject);
        }

        Instance = this;
        DontDestroyOnLoad(gameObject);

        GameStats.Initialize();
        GameStats.Debug   = debug;
        AssetMgr.Loggable = debug;

        Updater.OnAssetsInitialized = (gameScene, onProgress) =>
        {
            Assets.AddSearchPath("Assets/HotUpdateResources/Controller");
            Assets.AddSearchPath("Assets/HotUpdateResources/Dll");
            Assets.AddSearchPath("Assets/HotUpdateResources/Material");
            Assets.AddSearchPath("Assets/HotUpdateResources/Other");
            Assets.AddSearchPath("Assets/HotUpdateResources/Prefab");
            Assets.AddSearchPath("Assets/HotUpdateResources/Scene");
            Assets.AddSearchPath("Assets/HotUpdateResources/ScriptableObject");
            Assets.AddSearchPath("Assets/HotUpdateResources/TextAsset");
            Assets.AddSearchPath("Assets/HotUpdateResources/UI");

            AssetMgr.LoadSceneAsync(gameScene, false, onProgress, (b) =>
            {
                if (!b)
                {
                    return;
                }
                Instance.Load();
                ClassBindMgr.Instantiate();
                Instance.OnHotFixLoaded();
            });
        };
    }