Esempio n. 1
0
        private void OnGUI()
        {
            using (var v = new GUILayout.VerticalScope("AssetsUpdate Demo", "window")) {
                switch (state)
                {
                case State.Wait:
                    if (GUILayout.Button("Check"))
                    {
                        Check();
                    }

                    break;

                case State.WaitDownload:
                    if (GUILayout.Button("Download"))
                    {
                        Download();
                    }
                    break;

                case State.Completed:
                    if (GUILayout.Button("Clear"))
                    {
                        Clear();
                    }
                    break;

                default:
                    break;
                }

                GUILayout.Label(string.Format("{0}:{1}", state, message));
                if (state == State.Completed)
                {
                    GUILayout.Label("AllBundleAssets:");
                    foreach (var item in Assets.bundleAssets)
                    {
                        if (GUILayout.Button(item.Key))
                        {
                            assetPath = item.Key;
                        }
                    }

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

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

                        if (GUILayout.Button("LoadScene"))
                        {
                            var asset = Assets.LoadScene(assetPath, true, 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.name);
                                if (GUILayout.Button("Unload"))
                                {
                                    item.Release();
                                    loadedAssets.RemoveAt(i);
                                    i--;
                                }
                            }
                        }
                    }
                }
            }
        }