Mathf.FloorToIntのスクリプト リファレンス ドキュメントは次のとおりです。ご覧のとおり、-0.5 を切り捨てて -1 にする必要があります。何らかの理由で、私の計算で使用すると 0 として返されるようです。
非常によく似た方法で機能するが、異なる出力を与える同じ関数の 2 つのバージョンがあります。私のコードは、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;
}