这是Mathf.FloorToInt的脚本参考文档如您所见,它应该将 -0.5 向下舍入为 -1。由于某种原因,当与我的计算一起使用时,它似乎将其返回为 0。
我有两个版本的相同功能,它们以非常相似的方式工作,但输出不同。我的代码只会向这些函数提交 3 到 18 之间的整数。
这个版本就像使用 Mathf.CielToInt 一样(在 statRoll = 9 的情况下返回 0):
public int getBonus(int statRoll)
{
int result = Mathf.FloorToInt((statRoll - 10) / 2);
return result;
}
这是有效的版本(在 statRoll = 9 的情况下返回 -1):
public int getBonus(int statRoll)
{
float initial = statRoll - 10;
float divided = initial / 2;
int result = Mathf.FloorToInt(divided);
return result;
}