//释放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(); }
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); } } }