Unity3D制作图片数字作为分值显示
由于使用程序绘制数字局限性比较强,所以通常会使用图片来绘制数字。绘制原理为:首先取得需要显示数字的个位,十位,百位……数组序列,接着在图片数组中寻找对应的图片,然后将其绘制在屏幕中。
代码示例(C#):
using UnityEngine;
using System.Collections;
public class numberTexture : MonoBehaviour
{
Object[] texmube; //储存图片资源数组
int mumber = 1980; //所要测试的绘制数据
void Start()
{
texmube = Resources.LoadAll("Textures"); //读取图片资源
}
void OnGUI()
{
DrawImageNumber(0, 100, mumber, texmube); //绘制图片数字
}
void DrawImageNumber(int x,int y,int mumber,Object[] texmube)
{
//将整形转成字符数组
char[] chars = mumber.ToString().ToCharArray();
Texture2D tex = (Texture2D)texmube[0]; //计算图片的宽度与高度
int width = tex.width;
int height = tex.height;
foreach (char s in chars) //遍历字符数组
{
int i = int.Parse(s.ToString()); //得到每一位整形数据
//绘制图片数字
GUI.DrawTexture(new Rect(x,0,width,height),(Texture2D)texmube[i]);
x += width; //逐行绘制显示图片宽度
}
}
}
评论