您的位置:首页 > 移动开发 > Unity3D

Unity3d使用texture画数字

2016-12-20 14:59 239 查看
using UnityEngine;

using System.Collections;

public class DrawTexture : MonoBehaviour {

    private Object[] m_RedNumber; //存放数字,这里不能stexture2D,下面进行强制转化,否则在在start()里面读取不到,resource只能读取object类型的数据。

    public Transform m_DrawNumPoint;//数字显示的位置

    public int m_DrawNumber;//想要画的数字
// Use this for initialization
void Start () {

        m_RedNumber = Resources.LoadAll("RedNumber");//放texture的文件夹
}

// Update is called once per frame
void Update () {

}

    void OnGUI()

    {

        DrawTextureMethod(m_DrawNumPoint.position,m_DrawNumber,m_RedNumber);

        

    }

    public void DrawTextureMethod(Vector3 vect3,int number,Object[] obj)

    {

        float x= Vect3To2(vect3).x; 

        float y= Vect3To2(vect3).y;

        char[] chars= number.ToString().ToCharArray();   //将数字转化成字符数组。

        Texture2D tempTexture2d = (Texture2D)obj[0];

        float width = tempTexture2d.width;

        float height = tempTexture2d.height;

        foreach (char s in chars)      //s相当于s[i];

        {

            int i = int.Parse(s.ToString());  //将字符数组中的元素转化成数字

            GUI.DrawTexture(new Rect(x,y,width,height), (Texture2D)obj[i]);//画照片即数字

            x += width;

        }

    }

    /// <summary>

    ///  将3D坐标转换成2D坐标

    /// </summary>

    /// <param name="vect3"></param>

    /// <returns></returns>

    public Vector2 Vect3To2(Vector3 vect3)

    {

        Vector2 m_DrawNumPoint2D = Camera.main.WorldToScreenPoint(vect3);

        return m_DrawNumPoint2D; 

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: