Exemplo n.º 1
0
        private void Start()
        {
            if (dontDestroyOnLoad)
            {
                DontDestroyOnLoad(gameObject);
            }
            EditorInit();
            Assets.updateAll    = updateAll;
            Assets.downloadURL  = downloadURL;
            Assets.verifyBy     = verifyBy;
            Assets.searchPaths  = searchPaths;
            Assets.patches4Init = patches4Init;
            Assets.Initialize(error =>
            {
                if (!string.IsNullOrEmpty(error))
                {
                    Debug.LogError(error);
                    return;
                }

                if (splash)
                {
                    Assets.LoadSceneAsync(R.GetScene("Splash"));
                }
                else
                {
                    Assets.LoadSceneAsync(R.GetScene(launchScene));
                }
            });
        }
Exemplo n.º 2
0
        private IEnumerator LoadGameScene()
        {
            OnMessage("正在初始化");
            var init = Assets.Initialize();

            yield return(init);

            if (string.IsNullOrEmpty(init.error))
            {
                Assets.AddSearchPath("Assets/XAsset/Demo/Scenes");
                init.Release();
                OnProgress(0);
                OnMessage("加载游戏场景");
                var scene = Assets.LoadSceneAsync(gameScene, false);
                while (!scene.isDone)
                {
                    OnProgress(scene.progress);
                    yield return(null);
                }
            }
            else
            {
                init.Release();
                var mb = MessageBox.Show("提示", "初始化异常错误:" + init.error + "请联系技术支持");
                yield return(mb);

                Quit();
            }
        }
Exemplo n.º 3
0
        private IEnumerator LoadGameScene()
        {
            OnMessage("正在初始化");
            Assets.runtimeMode = true;
            var init = Assets.Initialize();

            yield return(init);

            if (string.IsNullOrEmpty(init.error))
            {
                OnProgress(0);
                OnMessage("加载游戏场景");
                var scene = Assets.LoadSceneAsync(gameScene, false);
                while (!scene.isDone)
                {
                    OnProgress(scene.progress);
                    yield return(null);
                }
            }
            else
            {
                var mb = MessageBox.Show("提示", "初始化异常错误:" + init.error + "请联系技术支持");
                yield return(mb);

                Quit();
            }
        }
Exemplo n.º 4
0
        private IEnumerator LoadGameScene()
        {
            OnMessage("正在初始化");
            Assets.runtimeMode = !developmentMode;
            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();
                // foreach (var s in Assets._searchPaths)
                // {
                //     Debug.Log("Assets._searchPaths: "+s);
                // }


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

                //获取不到全部资源路径...
                // var ss = Assets.GetAllAssetPaths();
                // foreach (var s in ss)
                // {
                //     print("从资源包里找到路径: "+s);
                // }
                // Debug.Log("资源包有"+ss.Length+"资源");

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

                Quit();
            }
        }
Exemplo n.º 5
0
        public static void LoadScene(string assetPath, Action <AssetRequest> completed)
        {
            //Debug.Log("加载场景: " + assetPath);

            var asset = Assets.LoadSceneAsync(assetPath, false);

            asset.completed += delegate(AssetRequest a)
            {
                completed?.Invoke(a);
            };
        }
Exemplo n.º 6
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();
            }
        }
Exemplo n.º 7
0
        private IEnumerator LoadGameScene()
        {
            OnMessage("正在初始化");
            Assets.runtimeMode = true;
            var init = Assets.Initialize();

            yield return(init);

            if (string.IsNullOrEmpty(init.error))
            {
                init.Release();
                OnProgress(0);
                OnMessage("加载游戏场景");

                // var ss = Assets.GetAllAssetPaths();
                // foreach (var s in ss)
                // {
                //     print(s);
                // }

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

                Quit();
            }
        }
Exemplo n.º 8
0
        private void OnGUI()
        {
            if (state == State.Completed)
            {
                using (var v = new GUILayout.VerticalScope("AssetsUpdate Demo", "window"))
                {
                    GUILayout.Label(string.Format("{0}:{1}", state, message));

                    if (GUILayout.Button("Clear"))
                    {
                        Clear();
                    }

                    GUILayout.Label("AllBundleAssets:");
                    var assets = Assets.GetAllBundleAssetPaths();
                    foreach (var item in assets)
                    {
                        if (GUILayout.Button(item))
                        {
                            assetPath = item;
                        }
                    }

                    using (var h = new GUILayout.HorizontalScope())
                    {
                        assetPath = GUILayout.TextField(assetPath, GUILayout.Width(256));
                        if (GUILayout.Button("Load"))
                        {
                            var asset = Assets.LoadAsset(assetPath, typeof(UnityEngine.Object));
                            asset.completed += OnAssetLoaded;
                        }

                        if (GUILayout.Button("LoadAsync"))
                        {
                            var asset = Assets.LoadAssetAsync(assetPath, typeof(UnityEngine.Object));
                            asset.completed += OnAssetLoaded;
                        }

                        if (GUILayout.Button("LoadScene"))
                        {
                            var asset = Assets.LoadSceneAsync(assetPath, true);
                            asset.completed += OnAssetLoaded;
                        }
                    }

                    if (loadedAssets.Count > 0)
                    {
                        if (GUILayout.Button("UnloadAll"))
                        {
                            for (int i = 0; i < loadedAssets.Count; i++)
                            {
                                var item = loadedAssets[i];
                                item.Release();
                            }

                            loadedAssets.Clear();
                        }

                        for (int i = 0; i < loadedAssets.Count; i++)
                        {
                            var item = loadedAssets[i];
                            using (var h = new GUILayout.HorizontalScope())
                            {
                                GUILayout.Label(item.url);
                                if (GUILayout.Button("Unload"))
                                {
                                    item.Release();
                                    loadedAssets.RemoveAt(i);
                                    i--;
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 9
0
 public void Load()
 {
     request = Assets.LoadSceneAsync(url, isAdditive);
 }