Unity如何将数字图片分解成数字显示出来——第一篇笔记

作为一个小萌新,我也终于开始使用CSDN来记录自己的笔记了,废话不多说,进入正题。

我希望的是能够获取图片0~9,并且将其根据数值进行一定顺序的排列,网上看到的设置自定义字体,本人感觉相对来说比较麻烦,而且我也不需要一直使用这个字体,所以就简单的自己写了个代码(因为自己也是刚学习不久的阶段,不排除网上有雷同)。

首先,需要一张图片,图片背景透明(这个图片随便找的)。在这里插入图片描述
然后放入Unity,将sprite Mode改成 Multiple->Apply->Spite Editor在这里插入图片描述
Slice,切成如下10张图片,Apply
在这里插入图片描述
接着就是创建10个对象,并拖入这10张图片,制作成预制体。
在这里插入图片描述
脚本如下:

public GameObject[] Digital;  //数字0~9的预制体
    public Transform[] texturePos;  //生成的最终位置
    public GameObject canvas;  //Canvas
    GameObject[] texture = new GameObject[3];  //用于存储三位数预制体
    ScoreManager manager;   //用于获取分数,自己写的类可忽略.

    private void Start()
    {
        manager = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
        CreateTexture();
    }
    public void CreateTexture()  //创建函数
    {
        for (int i = 0; i < 3; i++)
        {
            if (texture[i] != null)
            {
                Destroy(texture[i]);
            }
        }

        int Digits = manager.BestScore % 10;
        int Tens = manager.BestScore / 10 % 10;
        int Hundred = manager.BestScore / 100 % 10;

        texture[0] = Instantiate(Digital[Digits], transform);  //默认位置创建
        texture[1] = Instantiate(Digital[Tens], transform);
        texture[2] = Instantiate(Digital[Hundred], transform);

        texture[0].transform.SetParent(canvas.transform, false);  //作为Canvas的子对象
        texture[1].transform.SetParent(canvas.transform, false);
        texture[2].transform.SetParent(canvas.transform, false);

        texture[0].transform.localPosition = texturePos[0].localPosition; //更改相对Canvas局部坐标
        texture[1].transform.localPosition = texturePos[1].localPosition;
        texture[2].transform.localPosition = texturePos[2].localPosition;
    }

最后将脚本挂入对象运行即可。运行效果如下:
在这里插入图片描述
这是背景没透明的原因。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值