查看: 1008|回复: 0
打印 上一主题 下一主题

[其他] 游戏基础案例(三)制作数字图片

[复制链接]

711

主题

10

听众

5805

积分

高级设计师

Rank: 6Rank: 6

纳金币
2954
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2015-2-18 00:43:44 |只看该作者 |倒序浏览
制作图片数字:
     由于使用程序绘制的数字局限性较强,所以通常会使用图片来绘制数字。这样绘制的数字比较美观。它的制作原理如下:首先取得需要显示数字的个位、十位、百位.....的数组序列,接着在图片数组中寻找对应的图片,然后一次将它们绘制在屏幕中即可。

制作过程:
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. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-17 22:50 , Processed in 0.088049 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部