Hier ist das Skript Referenzdokument für Mathf.FloorToInt Wie Sie sehen können, sollte es -0.5 bis -1-Runde. Aus irgendeinem Grund scheint es den Wert 0 zurückzugeben, wenn es mit meinen Berechnungen verwendet wird.Einheit C# Mathf.FloorToInt (-0.5) gibt 0 zurück (verhält sich wie Mathf.CielToInt)
Ich habe zwei Versionen der gleichen Funktionen, die auf sehr ähnliche Weise funktionieren, aber unterschiedliche Ausgaben geben. Mein Code wird immer nur ganze Zahlen zwischen 3 und 18 an diese Funktionen senden.
Diese Version wirkt, als ob es Mathf.CielToInt (0 zurück in einem Fall von statRoll = 9) wurde unter Verwendung von:
public int getBonus(int statRoll)
{
int result = Mathf.FloorToInt((statRoll - 10)/2);
return result;
}
Dies ist die Version, die (zurückkehrt funktioniert -1 in einem Fall von statRoll = 9):
public int getBonus(int statRoll)
{
float initial = statRoll - 10;
float divided = initial/2;
int result = Mathf.FloorToInt(divided);
return result;
}
Ihr einfaches Problem ist, dass in C#, für Float-Konstanten wie "7" und "2", müssen Sie schreiben ** 7f ** und ** 2f **. So einfach ist das – Fattie