public static Sprite Load(string atlasName, string spriteName) { Sprite target = null; AssetBundle ab = LoadAB(atlasName); Sprite[] childSprites = ab.LoadAllAssets <Sprite>(); for (int i = 0; i < childSprites.Length; i++) { if (childSprites[i].name == spriteName) { target = childSprites[i]; break; } } if (target == null) { Debug.LogError("atlasName:" + atlasName + "没有精灵:" + spriteName); } ab.Unload(false); SpriteRes res = new SpriteRes(atlasName, childSprites[0].texture, childSprites); EventDispatcher.Instance.DispatchEvent(EventID.OnABResLoaded, res); return(target); }
private void exportSpriteRes(SpriteRes image, bool inside = false) { var name = "SpriteRes_" + image.name.Substring(image.name.IndexOf('$') + 1); var typeString = ""; var ExportFormatString = inside ? "{0}: UnityEngine.UI.Image," : " {0}: UnityEngine.UI.Image;"; ExportConstStringBuilder.AppendLine(string.Format(ExportFormatString, name)); var FormatString = inside ? "{0} = transform:Find(\"{1}\"):GetComponent(\"SpriteRes\")," : "self.{0} = transform:Find(\"{1}\"):GetComponent(\"SpriteRes\");"; ConstStringBuilder.AppendLine(string.Format(typeString + FormatString, name, GetFullPath(image.transform))); }
private static void Shuai_Item() { Object[] selectGameObjects = Selection.objects; //for (int i = 0; i < gameObjects.Length; i++) //{ GameObject selectGameObject_0 = selectGameObjects[0] as GameObject; Element[] elements = selectGameObject_0.transform.GetComponentsInChildren <Element>(); Debug.Log(elements.Length); for (int i = 0; i < elements.Length; i++) { Element element = elements[i]; GameObject child = element.gameObject; SpriteRenderer sprite = child.transform.GetComponent <SpriteRenderer>(); SpriteRes res = child.transform.GetComponent <SpriteRes>(); sprite.sprite = res.spriteList[element.id - 1]; Debug.Log(element.id); } //} }
private void onABResLoaded(string evtId, object[] paras) { Res res = paras[0] as Res; if (res is WindowRes) { WindowRes wRes = res as WindowRes; ResCacheDic[ABType.Window][wRes.resName] = wRes; //----->可视化显示 //var older = windowResList.Find(a => a.resName == wRes.resName); //if (older != null) //{ // older = wRes; //} //else //{ // windowResList.Add(wRes); //} //TODO:用上述方法,不知道是什么原因导致的inspector面板上ResObj没有显示出来 var older = ABManagerMono.Instance.windowResList.Find(a => a.resName == wRes.resName); if (older != null) { ABManagerMono.Instance.windowResList.Remove(older); } ABManagerMono.Instance.windowResList.Add(wRes); GameObject obj = wRes.resObj as GameObject; fillMatTexHolder(obj); this.addDestroyNotice(obj); } else if (res is EffectRes) { EffectRes effRes = res as EffectRes; ResCacheDic[ABType.Effect][effRes.resName] = effRes; //可视化处理 var older = ABManagerMono.Instance.effectResList.Find(a => a.resName == effRes.resName); if (older != null) { ABManagerMono.Instance.effectResList.Remove(older); } ABManagerMono.Instance.effectResList.Add(effRes); GameObject obj = effRes.resObj as GameObject; fillMatTexHolder(obj); this.addDestroyNotice(obj); } else if (res is OtherPrefabRes) { OtherPrefabRes opRes = res as OtherPrefabRes; ResCacheDic[ABType.OtherPrefab][opRes.resName] = opRes; //可视化处理 var older = ABManagerMono.Instance.opResList.Find(a => a.resName == opRes.resName); if (older != null) { ABManagerMono.Instance.opResList.Remove(older); } ABManagerMono.Instance.opResList.Add(opRes); GameObject obj = opRes.resObj as GameObject; fillMatTexHolder(obj); this.addDestroyNotice(obj); } else if (res is SpriteRes) { SpriteRes sRes = res as SpriteRes; ABManagerMono.Instance.spriteResList.Add(sRes); ResCacheDic[ABType.Sprite][sRes.resName] = sRes; } else if (res is TextureRes) { TextureRes tRes = res as TextureRes; ABManagerMono.Instance.texResList.Add(tRes); ResCacheDic[ABType.Texture][tRes.resName] = tRes; } else if (res is AudioRes) { AudioRes aRes = res as AudioRes; ABManagerMono.Instance.audioResList.Add(aRes); ResCacheDic[ABType.Audio][aRes.resName] = aRes; } }