纳金网
标题: 游戏基础案例(三)制作数字图片 [打印本页]
作者: 刀锋狼 时间: 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:- 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;
- }
- }
- }
复制代码
欢迎光临 纳金网 (http://rs.narkii.com/club/) |
Powered by Discuz! X2.5 |