lingyifang4

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;                                    //逐行绘制显示图片宽度

}

}

}


评论