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 : 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
}
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
 
// 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.