Unity中对于数值游戏的大数显示

前言

以前玩过几款手游,到中后期数值爆炸,显示单位也从正常的k、m等进化到aa、bb、cc等代替更高单位,下面记录下做法。

代码

csharp 复制代码
    private static readonly string[] Units = new string[] { "", "k", "m", "b", "t", "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj", "kk", "ll", "mm", "nn", "oo", "pp", "qq", "rr", "ss", "tt", "uu", "vv", "ww", "xx", "yy", "zz" /* ...继续添加更多单位... */ };

    /// <summary>
    /// 大数转换
    /// </summary>
    /// <param name="number">原始数</param>
    /// <param name="decimalPlaces">保留几位小数</param>
    /// <returns></returns>
    public static string FormatNumber(double number, int decimalPlaces = 3)
    {
        if (number == 0)
            return "0";

        int unitIndex = 0;

        while (number >= 1000)
        {
            number /= 1000;
            unitIndex++;
        }

        unitIndex = Math.Min(unitIndex, Units.Length - 1);

        // 使用指定的小数位数格式化数字,并添加适当的单位
        string format = "{0:0." + new string('#', decimalPlaces) + "}{1}";
        return String.Format(format, number, Units[unitIndex]);
    }
相关推荐
海天鹰8 小时前
Linux系统4399云游戏无法进入
linux·游戏
游乐码8 小时前
unity基础 (三)坐标系
unity·游戏引擎
qq_205279058 小时前
Unity 避免Text组件每行开头不是字符和空格,适配不同分辨率
unity·游戏引擎
游乐码8 小时前
Unity基础(二)游戏中的角度及三角函数
游戏·unity·游戏引擎
真鬼12310 小时前
Cesium、Cmake、Dotnet快捷下载
unity·游戏引擎
真鬼12310 小时前
【Unity安卓】Unity 嵌入 Android Studio 完整流程
android·unity·android studio
a588081111 小时前
Win10/11能玩暗黑破坏神1,经典游戏回复,详细安装教程,附下载安装包
游戏
运筹vivo@1 天前
leetcode每日一题: 跳跃游戏 IV
leetcode·游戏·宽度优先
为你写首诗ge1 天前
【Unity知识分享】Mirror实现房间等待功能(创建房间 / 搜索房间、加入房间、房间准备、房间内角色设置、返回房间)
unity·mirror·房间等待功能