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();
}
}
看懂的记得给个赞哟!