//释放resLoader加载的所有资源,至于缓存会根据其加载时的属性
 public void ReleaseRes()
 {
     GetComponent <SpriteRenderer>().sprite = null;
     for (int i = Res.Count - 1; i >= 0; i--)
     {
         DestroyImmediate(Res[i]);
     }
     Res.Clear();
     resLoader.ReleaseAllRes();
     Obj.Clear();
 }
示例#2
0
        private void Update()
        {
            if (isABFinish)
            {
                //A : 从AB包同步加载prefab
                if (Input.GetKeyDown(KeyCode.A))
                {
                    //加载Resource路径下的Prefabs
                    testPrefab = UIManager.Instance.OpenUI <UIABLoadTestPre>((int)testUIEnum.ABLoadTestPre, null, panelLayer: PanelLayer.Load, isClear: true);
                }
                //S : 释放A加载的prefab,无限缓存
                if (Input.GetKeyDown(KeyCode.S))
                {
                    //加载Resource路径下的Prefabs
                    UIManager.Instance.CloseUI <UIABLoadTestPre>();
                }
                //D : 释放所有资源,这里注意 : UI资源属于UIManager中的resLoader,如果要释放UI,请类似S键那样通过UIManager释放UI
                if (Input.GetKeyDown(KeyCode.D))
                {
                    //加载Resource路径下的Prefabs
                    resLoader.ReleaseAllRes();
                }
                //F : 释放UIChild所有子物体,回收到RecyclePoolTrs
                if (Input.GetKeyDown(KeyCode.F))
                {
                    testPrefab.RecycleAllChild();
                }
                //G : 释放UIChild所有子物体,并会回收内存
                if (Input.GetKeyDown(KeyCode.G))
                {
                    testPrefab.RecycleChild <UIChild>(0, true);
                }

                //Z : 释放父级物体,回收到RecyclePoolTrs
                if (Input.GetKeyDown(KeyCode.Z))
                {
                    UIManager.Instance.CloseUI <UIABLoadTestPre>(1);
                }


                //X : 释放父级物体,连同子物体一起回收,请注意参数
                if (Input.GetKeyDown(KeyCode.X))
                {
                    UIManager.Instance.CloseUI <UIABLoadTestPre>(0, true);
                }
            }
        }