Voici le document de référence du script pour Mathf.FloorToInt Comme vous pouvez le voir, il devrait arrondir de -0,5 à -1. Pour une raison quelconque, il semble le retourner à 0 lorsqu'il est utilisé avec mes calculs.unity C# Mathf.FloorToInt (-0.5) renvoie 0 (agit comme Mathf.CielToInt)
J'ai deux versions des mêmes fonctions qui fonctionnent de manière très similaire mais qui donnent des sorties différentes. Mon code ne soumettra jamais que des entiers entre 3 et 18 à ces fonctions.
Cette version agit comme si elle était utilise Mathf.CielToInt (0 rendements en cas de statRoll = 9):
public int getBonus(int statRoll)
{
int result = Mathf.FloorToInt((statRoll - 10)/2);
return result;
}
Ceci est la version qui fonctionne (retourne -1 en cas de statRoll = 9):
public int getBonus(int statRoll)
{
float initial = statRoll - 10;
float divided = initial/2;
int result = Mathf.FloorToInt(divided);
return result;
}
votre problème est simple en C#, pour des constantes flottantes comme "7" et "2", vous devez écrire ** 7F ** et ** 2f **. c'est si simple – Fattie