关于html5:Unity游戏开发中大数值显示问题

3次阅读

共计 1688 个字符,预计需要花费 5 分钟才能阅读完成。

作为游戏设计者,咱们更不心愿展现这么长的串给玩家看。那么,你是否也在为数值太大,显示不残缺而懊恼,亦或者面对如此宏大的数值感到头昏脑涨。不必放心,不必焦急,上面给大家介绍游戏中罕用的展现办法实现原理在游戏中,咱们通常会应用如下的符号来代替指定的单位:K 是 10 的 3 次方,也就是千 M 是 10 的 6 次方,也就是百万 B 是 10 的 9 次方,也就是十亿代码展现

1. 只保留游戏方面整数局部

local function NumFormat(num)

if num >= 100000000 then
    num = math.modf(num / 100000000)
elseif num >= 1000000 then
    num = math.modf(num / 1000000)
elseif num >= 1000 then
    num = math.modf(num / 1000)
end    return num

end1.2.3.4.5.6.7.8.9.10.

2. 保留一位小数
local function NumFormat(num)

if num >= 100000000 then
    num = math.modf(num / 10000000)
    num = string.format("%.1fB", num / 10)
elseif num >= 1000000 then
    num = math.modf(num / 100000)
    num = string.format("%.1fM", num / 10)
elseif num >= 1000 then
    num = math.modf(num / 100)
    num = string.format("%.1fK", num / 10)
end    return num

end1.2.3.4.5.6.7.8.9.10.11.12.13.

3. 保留两位小数
local function NumFormat(num)

if num >= 100000000 then
    num = math.modf(num / 1000000)
    num = string.format("%.2fB", num / 100)
elseif num >= 1000000 then
    num = math.modf(num / 10000)
    num = string.format("%.2fM", num / 100)
elseif num >= 1000 then
    num = math.modf(num / 10)
    num = string.format("%.2fK", num / 100)
end    return num

end1.2.3.4.5.6.7.8.9.10.11.12.13.

小数位解决

下面三种办法会存在 www.sangpi.com,如果小数部份为 0,也会显示 0 这个位,为了难看,咱们须要解决一下,将小数位为 0 的局部去掉。

思路如下:应用 math.modf 办法,失去两个值 value1,value2。别离代表整数局部和小数局部。通过对小数局部与 0.1 的判断, 决定是否舍掉或者保留小数位。

代码如下:

复制

local function DealNum(_int,_float)

if _float < 0.1 then
    return _int    else
    local temp = string.format("%.1f", _int+_float)
    return temp
end

endlocal function NumFormat(num)

if num >= 100000000 then
    num = math.floor(num/10000000)
    num1,num2 = math.modf(num / 10)
    num = DealNum(num1,num2)
    num = num.."B"
elseif num >= 1000000 and num < 100000000 then
    num = math.floor(num/100000)
    num1,num2 = math.modf(num / 10)
     num = DealNum(num1,num2)
    num = num.."M"
elseif num >= 1000 and num < 1000000 then
    num = math.floor(num/100)
    num1,num2 = math.modf(num / 10)
    num = DealNum(num1,num2)
    num = num.."K"
end    return num

end

正文完
 0