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]);
    }
相关推荐
鹿野素材屋1 天前
Unity超轻量级中文语音播报,仅5兆大小,无需联网即可使用,适用于弹幕、提示等动态语音播出
unity·游戏引擎
笨鸟先飞的橘猫1 天前
c++游戏后端开源框架学习——wukong(十、lua热更新)
c++·游戏·开源
电子云与长程纠缠2 天前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
玖玥拾2 天前
Unity3D RPG 入门项目(八)游戏设置面板、帧率控制、快捷技能药品栏、技能解锁系统
游戏·3d·unity·游戏引擎
ellis19702 天前
u3d插件xLua[十] lua侧判空问题
unity
电子云与长程纠缠2 天前
UE5 Lyra PocketWorld进行3D内容UI预览 - 下
开发语言·学习·游戏·ui·ue5
牛哇网络工作室3 天前
UnityHDRP写实数字人全流程基础5—语音输入和语音识别
android·unity·c#·游戏引擎·aigc·语音识别·xcode
ellis19703 天前
u3d插件xLua[九]例8 Hotfix
unity
淡海水3 天前
01-07-运行时-GC深度剖析-内存分配回收与结构选择
jvm·windows·unity·gc
优梦创客3 天前
游戏开发架构选型:第1篇|什么是架构?从进球事件看 MVC 的局限
unity·架构·游戏引擎·游戏开发