Unity小技巧:使用图片代替数字0到9的显示

先看效果:

首先,需要0到9的图片(背景需要透明),并且做成预制体(一个带Image组件的物体就可以):

新建一个脚本,声明一个GameObject类型的数组(也可以是其他容器,随便你啦),挂载到场景上的游戏物体上,并且引用0到9数字的十个预制体:

接下来是代码:

using UnityEngine;

public class NumberText : MonoBehaviour
{

    //数字图片预制体数组
    public GameObject[] nums;

    public void DisplayNumber(int number,Transform tf,float distance = 50f)
    {
        // 将数字转换为字符串
        string numberString = number.ToString();

        // 计算开始位置,以使数字居中
        float startX = -((numberString.Length - 1) * distance) / 2f;

        // 遍历每个字符,创建对应的数字图片
        for (int i = 0; i < numberString.Length; i++)
        {
            // 获取当前字符对应的数字
            int digit = int.Parse(numberString[i].ToString());

            // 实例化数字预制体
            GameObject digitObject = Instantiate(nums[digit], tf);

            // 调整位置(可选)                                                                   
            digitObject.transform.localPosition = new Vector3(startX + i * distance, 0, 0);
        }
    }

    private void Start()
    {
        DisplayNumber(987,transform.Find("Image"),40f);
    }

}

防止大家看不懂(注释已经够清楚啦!),简单介绍一下DisplayNumber()这个方法:第一个参数number就是我们要显示的数字,第二个参数是为实例化出来的预制体准备的父物体,第三个参数是每个预制体之间的间隔。代码中还添加了自动居中的功能,不想要可以去掉。

如果想修改图片文字的大小,可以直接修改父物体的缩放(当然你也可以用其他方法),就是这个Image 

喜欢的可以点个关注,以后不定时更新更多Unity小技巧~

可以关注我的公众号,有免费开发资源分享:

猜你喜欢

转载自blog.csdn.net/m0_60939640/article/details/142064780