un truc qui m'agace depuis une heure environ, passée sur la doc, le forum et Unity answers.
Dans une UI, un bouton peut appeler une fonction, grâce à la section OnClick (), si cette fonction est dans le bon script (attaché à l'objet placé dans le champ inférieur de gauche) et public. Si la fonction a un paramètre, il est possible d'indiquer la valeur dans le champ qui apparait alors. Ok, ça marche bien.
Ma fonction utilise un enum, et elle n'apparait plus dans la liste de fonctions accessibles. Je ne pense pas que cela vienne du code, mais sait-on jamais :
Code : Tout sélectionner
public class DifficultyButton : MonoBehaviour {
public enum Level { easy, medium, hard };
public Level currentDifficulty = Level.easy;
public void SetLevel (Level _level) {
switch (_level) {
case Level.easy:
currentDifficulty = Level.easy;
minefield.CreateMinefield (10, 10, 5);
break;
case Level.medium:
currentDifficulty = Level.medium;
minefield.CreateMinefield (16, 16, 32);
break;
case Level.hard:
currentDifficulty = Level.hard;
minefield.CreateMinefield (32, 32, 64);
break;
default:
break;
}
}
}
Je contourne la difficulté en mettant des cast (int) sur l'enum, et la fonction est accessible dans la boite déroulante, mais fournit un int, pas très lisible, au lieu d'un enum plus agréable à utiliser.
Une idée qui règle ce souci ?