Exemplo n.º 1
0
    void doSomething(KSwordKit.Contents.ResourcesManagement.ResourcesManager rmi)
    {
        rmi.OnInitializedSuccessfully(() => {
            Debug.Log("初始化成功!当前资源CRC:" + rmi.ResourcePackage.CRC);
            foreach (var r in KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.ResourcePackage.AssetBundleInfos)
            {
                Debug.Log("资源包:" + r.AssetBundleName + ",路径:" + r.AssetBundlePath);
                foreach (var d in r.Dependencies)
                {
                    Debug.Log("\t依赖包:" + d);
                }
                foreach (var item in r.ResourceObjects)
                {
                    Debug.Log("\t内部的资源对象:" + item.ObjectName + "\n\t\t路径:" + item.ResourcePath);
                }
            }

            ProgressImage.rectTransform.sizeDelta = new Vector2(0, ProgressImage.rectTransform.sizeDelta.y);
            // 加载资源并实例化

            KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.LoadAssetAsync <GameObject>(
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.prefabs.loadSceneButton_prefab.Path, (isdone, progress, _error, obj) =>
            {
                if (isdone)
                {
                    if (string.IsNullOrEmpty(_error))
                    {
                        Debug.Log("加载预制体 loadSceneButton 成功, 名称:" + obj.name);
                        var go  = Instantiate(obj, UIRoot.transform);
                        go.name = obj.name;
                        go.GetComponentInChildren <Text>().text = "加载Test场景";

                        string sceneName = null;
                        go.GetComponent <Button>().onClick.AddListener(() =>
                        {
                            rmi.LoadSceneAsync(Assets.KSwordKit.Examples.ExampleResourcesManagement.Test_unity.Path, (_sceneName) =>
                            {
                                sceneName = _sceneName;
                                return(UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(_sceneName));
                            }, (_isdone, _progress, __error, sceneinfo) =>
                            {
                                if (_isdone)
                                {
                                    Debug.Log("场景" + sceneName + "加载完成:" + (__error == null ? "NULL" : __error));
                                    return;
                                }

                                Debug.Log("正在加载场景 :" + progress);
                                ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                                ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                            });
                        });
                    }
                    else
                    {
                        Debug.LogError("加载预制体 loadSceneButton 失败!\n" + _error);
                    }
                }
                else
                {
                    Debug.Log("正在加载预制体 loadSceneButton :" + progress);
                    ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                    ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                }
            });

            KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.LoadAssetAsync(Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.背景.背景光效_png.Path, (isdone, progress, _error, obj) =>
            {
                if (isdone)
                {
                    if (string.IsNullOrEmpty(_error))
                    {
                        Debug.Log("加载 背景图片 成功:" + obj.name);
                        var t = obj as Texture2D;
                        TestLoadAssetsPanel.transform.GetChild(0).GetComponent <Image>().sprite = Sprite.Create(t, new Rect(0, 0, t.width, t.height), Vector2.zero);
                    }
                    else
                    {
                        Debug.LogError("加载 背景图片 失败:" + _error);
                    }
                }
                else
                {
                    Debug.Log("正在加载 背景图片 :" + progress);
                    ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                    ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                }
            });
            // 加载第一组资源,并赋值
            KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.LoadAssetAsync(new string[] {
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.个人信息.个人信息图标_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.个人信息.个人信息修改名字_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.图标._1_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.图标._2_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.图标._5_png.Path
            }, (isdone, progress, _error, objs) =>
            {
                if (isdone)
                {
                    if (!string.IsNullOrEmpty(_error))
                    {
                        Debug.LogError("加载第一组资源 失败:" + _error);
                        return;
                    }

                    Debug.Log("第一组资源全部加载成功");

                    for (var i = 0; i < objs.Length; i++)
                    {
                        var t        = objs[i] as Texture2D;
                        var image    = TestLoadAssetsPanel.transform.GetChild(i + 1).GetComponent <Image>();
                        image.sprite = Sprite.Create(t, new Rect(0, 0, t.width, t.height), image.rectTransform.pivot);
                        image.SetNativeSize();
                    }
                }
                else
                {
                    Debug.Log("正在加载第一组资源:" + progress);
                    ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                    ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                }
            });
            // 使用泛型加载资源

            KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.LoadAssetAsync <Sprite>(Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.图标._6_png.Path, (isdone, progress, _error, obj) =>
            {
                if (isdone)
                {
                    if (string.IsNullOrEmpty(_error))
                    {
                        Debug.Log("加载 按钮 成功:" + obj.name);
                        TestLoadAssetsPanel.transform.GetChild(6).GetComponent <Image>().sprite = obj;
                        TestLoadAssetsPanel.transform.GetChild(6).GetComponent <Image>().SetNativeSize();
                    }
                    else
                    {
                        Debug.LogError("加载 按钮 失败:" + _error);
                    }
                }
                else
                {
                    Debug.Log("正在加载 按钮 :" + progress);
                    ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                    ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                }
            });
            // 加载第二组资源
            KSwordKit.Contents.ResourcesManagement.ResourcesManager.Instance.LoadAssetAsync <Sprite>(new string[] {
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.视屏_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.图标._8_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.钮.项目升级按钮动画_png.Path,
                Assets.KSwordKit.Examples.ExampleResourcesManagement.Resources.texture.个人信息.个人信息图标_png.Path
            }, (isdone, progress, _error, objs) =>
            {
                if (isdone)
                {
                    if (!string.IsNullOrEmpty(_error))
                    {
                        Debug.LogError("加载第二组资源 失败:" + _error);
                        return;
                    }

                    Debug.Log("第二组资源全部加载成功");

                    for (var i = 0; i < objs.Length; i++)
                    {
                        var image    = TestLoadAssetsPanel.transform.GetChild(i + 7).GetComponent <Image>();
                        image.sprite = objs[i];
                        image.SetNativeSize();
                    }
                }
                else
                {
                    Debug.Log("正在加载第二组资源:" + progress);
                    ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
                    ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
                }
            });
        });
        rmi.OnInitializationFailed((error) => {
            Debug.LogError("Launch -> 初始化时发生错误 -> " + error);
        });
        rmi.OnInitializing((progress) => {
            Debug.Log("正在初始化:进度 -> " + progress);
            ProgressImage.rectTransform.sizeDelta = new Vector2(progress * ProgressParentRT.rect.width, ProgressImage.rectTransform.sizeDelta.y);
            ProgressText.text = "加载进度: " + (progress * 100).ToString("f2") + "%";
        });
    }