public override void Recycle() { if (currentObj != null) { FreeUrl url = FreeResourceUtil.Convert(_particleName); currentObj.SetActive(false); FreePrefabLoader.ReturnGameObject(currentObj, new AssetInfo(url.BuddleName, url.AssetName)); } }
private void ReturnObject(ItemBar bar) { FreePrefabComponent prefab = bar.prefab; GameObject obj = (GameObject)prefab.currentObject; if (obj != null) { obj.GetComponent <Transform>().parent = null; FreePrefabLoader.ReturnGameObject(obj, prefab.assetInfo); string imgUrl = ""; string[] fieldValues = bar.value.Split(FreeMessageConstant.SpliterRecord); foreach (string fieldValue in fieldValues) { string[] vs = fieldValue.Split(FreeMessageConstant.SpilterField); if (vs.Length == 2) { if (vs[0].Trim() == "IMG_WeaponIcon") { imgUrl = vs[1].Trim(); } } } GameObject img = UnityUiUtility.FindUIObject(obj, "IMG_WeaponIcon"); if (img != null && !string.IsNullOrEmpty(imgUrl)) { int last = imgUrl.Trim().LastIndexOf("/"); string buddleName = imgUrl.Trim().Substring(0, last); string assetName = imgUrl.Trim().Substring(last + 1); AssetInfo info = new AssetInfo(buddleName, assetName); Graphic gra = img.GetComponent <Graphic>(); if (gra is Image) { FreeUILoader.ReturnGameObject(((Image)gra).sprite, info); } if (gra is RawImage) { FreeUILoader.ReturnGameObject(((RawImage)gra).texture, info); } } } }