制作图片数字: 由于使用程序绘制的数字局限性较强,所以通常会使用图片来绘制数字。这样绘制的数字比较美观。它的制作原理如下:首先取得需要显示数字的个位、十位、百位.....的数组序列,接着在图片数组中寻找对应的图片,然后一次将它们绘制在屏幕中即可。
制作过程: 1.在Assets文件夹的任意位置新建一个文件夹Resoures,里面再建一个文件夹Textures,把0~9十张图片放在里面 2.在脚本中加载这十张图片; public Texture[] texmube; public int mumber = 1980; void Start() { texmube = Resources.LoadAll("Texture"); } 3.把要制作的数字每个字符转化为数组 void OnGUI() { DrawImageNumber(0,100,munber,texmube); } void DrawImageNumber(int x ,int y,int mumber,int Object[] texmube) { char[] chars =mumber.ToString().ToCharArray(); [url=]//计算图片的宽度和高度[/url] Texture2D tex = (Texture2D)texmube[0]; int width = tex.width; int height = tex.height; [url=]//遍历字符数组[/url] foreach(char s int chars) { int i = int.Parse(s.ToString()); GUI.DrawTexture(new Rect(x,0,width,height,(Texture2D)texmube); x+=width; } }
脚本代码: NumberPictures.cs:- using UnityEngine;
- using System.Collections;
- public class NumberPictures : MonoBehaviour {
- Object[] texmube;
- int mumber = 1980;
- void Start () {
- texmube = Resources.LoadAll("Textures");
- }
- void OnGUI()
- {
- DrawImageNumeber(0,100,mumber,texmube);
-
- }
- // Update is called once per frame
- void Update () {
-
- }
- private void DrawImageNumeber( 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;
- }
- }
- }
复制代码 |