Type.GetField toujours null
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 :
Code:
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
} |
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:
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); |
Est-ce que vous sauriez me dire ce qui ne va pas dans mon code ?
J'ai essayé avec des bindingFLags mais ça ne change rien.
D'avance merci.