Bonjour à tous,
Je sèche complètement sur un souci avec la fonction Type.GetField() qui me retourne toujours la valeur null sans que je comprenne pourquoi.
J'ai les deux classes et l'Enum ci-dessous :
Dans une autre classe j'ai le code ci-dessous pour essayer de récupérer le nom de la valeur du enum sélectionnée dans l'instance EffectArea() de Spell.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 [System.Serializable] public class Spell : MonoBehaviour { // ... [SerializeField] private EffectArea _effectArea = new EffectArea(); // ... } [System.Serializable] public class EffectArea{ //... public TargetType _targetType; //... } public enum TargetType { None, Ally, Ennemy, Both, Self }
Est-ce que vous sauriez me dire ce qui ne va pas dans mon code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // la variable property est passée en paramètre et est du type SerializedProperty property System.Type parentType = property.serializedObject.targetObject.GetType(); // parentType est bien de type Spell FieldInfo propertyFieldInfo = parentType.GetField(property.propertyPath); // propertyPath = _effectArea._targetType ... mais ça me renvoi toujours null ici string enumValueName= Enum.GetName(propertyFieldInfo.FieldType, property.enumValueIndex);
J'ai essayé avec des bindingFLags mais ça ne change rien.
D'avance merci.
Partager