Hey,小伙伴们,是不是在使用Unity的UGUI时,遇到不能直接显示数字或者字体不合适的问题?美术提供的0~9数字UI又难以匹配到UGUI上?别急,今天就来跟大家分享一个数字UI管理器,它可以帮助你轻松解决这个问题!
什么是数字UI管理器?
数字UI管理器是一个Unity脚本,它可以帮助你快速获取和设置数字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 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;
}
}
使用方法
将脚本挂载到物体上,然后拖入0~9个数字精灵,或者其他的。接下来,你可以使用以下方法来设置数字:
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();
}
}
看懂了的小伙伴们,记得点赞支持哦!
我是陆砚码,来自「思享编程网」(www.sxgpb.com),这里还有更多精彩的技术分享等你来探索!
