UGUI -- 原生Sprite 处理小扩展

使用了Unity5.0 之后的版本,做UI界面再也不想用第三方的UI插件了,毕竟支持比较好!但也有很多不足的地方,比如Sprite的使用,系统没有提供根据Sprite名称获取Sprite的方法,所以一开始我是直接把Sprite的路径保存在文件里面,使用的时候Resources.Load一下,这样做每次修改都要更新文件,很麻烦,而且当Sprite超多的时候就更加麻烦了,NGUI和2Dtoolkit里都有图集的概念来管理这些Sprite,但是原生的是没有的!一开始自己的想法是把每张Sprite保存到Prefab里面,百度一下,原来雨松MOMO大神也有这么介绍,他的文章地址点击打开链接;好,既然思路正确,虽然雨松MOMO也有给出了代码,不过还是要自己按照自己的风格写一遍,哈哈哈!

首先写一个UIAtlas类,直接盗用NGUI的名称,不要介哈,这个类主要提供根据名称获取Sprite的接口!主要代码如下:


public class UIAtlas : MonoBehaviour
{
   private Dictionary<string, Sprite> spriteDictionary = new Dictionary<string, Sprite>();
    private bool isInit = false;
    void Awake()
    {
        InitSprites();
    }


    void InitSprites()
    {
        if (!isInit)
        {
            SpriteRenderer[] renders = GetComponentsInChildren<SpriteRenderer>();
            foreach (var render in renders)
            {
                if (!spriteDictionary.ContainsKey(render.name))
                {
                    spriteDictionary.Add(render.sprite.name, render.sprite);
                }
            }
            isInit = true;
        }
    }


    public Sprite Load(string spriteName)
    {
        InitSpr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值