示例#1
0
        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);
        }
示例#2
0
        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)));
        }
示例#3
0
    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);
        }
        //}
    }
示例#4
0
        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;
            }
        }