纳金网

标题: 游戏基础案例(三)制作数字图片 [打印本页]

作者: 刀锋狼    时间: 2015-2-18 00:43
标题: 游戏基础案例(三)制作数字图片
制作图片数字:
     由于使用程序绘制的数字局限性较强,所以通常会使用图片来绘制数字。这样绘制的数字比较美观。它的制作原理如下:首先取得需要显示数字的个位、十位、百位.....的数组序列,接着在图片数组中寻找对应的图片,然后一次将它们绘制在屏幕中即可。

制作过程:
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:
  1. using UnityEngine;
  2. using System.Collections;

  3. public class NumberPictures : MonoBehaviour {

  4.     Object[] texmube;
  5.     int mumber = 1980;
  6.         void Start () {
  7.         texmube = Resources.LoadAll("Textures");

  8.         }
  9.     void OnGUI()
  10.     {
  11.         DrawImageNumeber(0,100,mumber,texmube);
  12.         
  13.     }
  14.         // Update is called once per frame
  15.         void Update () {
  16.         
  17.         }

  18. private void DrawImageNumeber( int x, int y, int mumber, Object[] texmube )
  19. {
  20.         char[] chars = mumber.ToString().ToCharArray();
  21.     Texture2D tex = (Texture2D)texmube[0];
  22.      int width = tex.width;
  23.      int height = tex.height;
  24.      foreach(char s in chars)
  25.      {
  26.          int i= int.Parse(s.ToString());
  27.          GUI.DrawTexture(new Rect(x,0,width,height),(Texture2D)texmube[i]);
  28.          x+=width;
  29.      }
  30. }

  31. }
复制代码





欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5