Unity UGUI UI数字管理器

Unity UI数字管理器:

我们使用UGUI时对于不能使用文本显示数字,或者没有合适的字体非常头疼,通常美术会提供0~9这个ui,我们要想匹配到ugui上会比较麻烦,所以我做了一个数字ui管理器,帮我解决了大部分问题

NumSpriteManager脚本:

废话少说,上代码:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;

//数字精灵
public class NumSpriteManager : MonoBehaviour {

    //数字列表1
    public Sprite[] m_numList01;
    //数字列表2
    public Sprite[] m_numList02;
    //数字列表3
    public Sprite[] m_numList03;
    //数字列表4
    public Sprite[] m_numList04;
    //数字列表5
    public Sprite[] m_numList05;
    //数字列表6
    public Sprite[] m_numList06;
    //数字列表7
    public Sprite[] m_numList07;
    //数字列表8
    public Sprite[] m_numList08;
    //字母列表
    public List<Sprite> m_letterList;

    //加号
    public Sprite m_plus;
    //减号
    public Sprite m_substact;
    //冒号1
    public Sprite m_colon01;
    //冒号2
    public Sprite m_colon02;


	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    //获取数字精灵1
    public Sprite GetNumSpriteType01 (int num )
    {
        if (m_numList01 == null || m_numList01.Length < num + 1)
            return null;
        return m_numList01[num];
    }

    //获取数字精灵2
    public Sprite GetNumSpriteType02(int num)
    {
        if (m_numList02 == null || m_numList02.Length < num + 1)
            return null;
        return m_numList02[num];
    }

    //获取数字精灵3
    public Sprite GetNumSpriteType03(int num)
    {
        if (m_numList03 == null || m_numList03.Length < num + 1)
            return null;
        return m_numList03[num];
    }

    //获取数字精灵4
    public Sprite GetNumSpriteType04(int num)
    {
        if (m_numList04 == null || m_numList04.Length < num + 1)
            return null;
        return m_numList04[num];
    }

    //获取数字精灵5
    public Sprite GetNumSpriteType05(int num)
    {
        if (m_numList05 == null || m_numList05.Length < num + 1)
            return null;
        return m_numList05[num];
    }

    //获取数字精灵6
    public Sprite GetNumSpriteType06(int num)
    {
        if (m_numList06 == null || m_numList06.Length < num + 1)
            return null;
        return m_numList06[num];
    }

    //获取数字精灵7
    public Sprite GetNumSpriteType07(int num)
    {
        if (m_numList07 == null || m_numList07.Length < num + 1)
            return null;
        return m_numList07[num];
    }

    //获取数字精灵8
    public Sprite GetNumSpriteType08(int num)
    {
        if (m_numList08 == null || m_numList08.Length < num + 1)
            return null;
        return m_numList08[num];
    }
    
    //获取字母
    public Sprite GetLetterType(int num)
    {
        if (m_letterList == null || num < 0 || num > 26) return null;
        return m_letterList[num - 1];
    }

    //获取加号
    public Sprite GetPlusSign()
    {
        return m_plus;
    }

    //获取减号
    public Sprite GetSubstactSign()
    {
        return m_substact;
    }

    //获取冒号1
    public Sprite GetColonSign01()
    {
        return m_colon01;
    }
    //获取冒号2
    public Sprite GetColonSign02()
    {
        return m_colon02;
    }

}

unity Hierarchy面板在这里插入图片描述将脚本挂到物体上,拖入0~9个数字精灵,或者其他的

使用方法:

 /// <summary>
    /// 设置数字
    /// </summary>
    public void SetNum(int score, NumSpriteManager numSpriteManager)
    {
        for (int i = 0; i < puc_numScores.Length; i++)
        {
            puc_numScores[i].gameObject.SetActive(false);
        }

        string str_nums = score.ToString();
        for (int i = 0; i < str_nums.Length; i++)
        {
            string str_num = str_nums.Substring(i, 1);
            //打开对应的分数ui
            puc_numScores[i].gameObject.SetActive(true);
            //设置分数ui、的精灵
            puc_numScores[i].overrideSprite = numSpriteManager.GetNumSpriteType01(int.Parse(str_num));
            //puc_numScores[i].SetNativeSize();
        }
    }

看懂的记得给个赞哟!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值