Unity3D ScriptableObject with UnityEvent not saving event parameter
I have a ScriptableObject container which I show on a custom editor as a node of a graph. The container also has a custom inspector, with another ScriptableObject called Action on it, besides other fields.
My problem is: The Action has a UnityEvent. When I set the object and the method to be called by the event, it persists with no problem, but when I put some parameter to the method, the parameter do not persists. Only if after changing the parameter, I change the method to other with the same parameter and them change it back. I guess by doing that I force some kind of serialization.
How this structure is used: Custom editor on unity:
EDIT:
That is the code of the my Action class that has the UnityEvent:
[System.Serializable]
public class UnityEventAction : ToolKitAction {
public UnityEvent onInteractionTrigged;
public override void Execute( GameObject dialogController ){
onInteractionTrigged.Invoke();
}
This is the ScriptableObject it extends:
[System.Serializable]
public class ToolKitAction: { public virtual void Execute(GameObject
gameObject) { }
}
The class that contains this object:
[System.Serializable]
public class Interaction {
private enum State{ ACTIVE, INACTIVE };
private State state = State.INACTIVE;
public int interactionId;
[SerializeField]
public ToolKitAction tkAction;
...
}
A ScriptableObject that works only as a container for the Interaction, which represents the node of the editor.
public class InteractionContainer: ScriptableObject{
public Interaction interaction;
}
The class of the Custom Inspector for this container:
The class of the Custom Editor that creates the node editor:
Your answer
Follow this Question
Related Questions
Custom inspector - How to serialize scene objects in ScriptableObject? 0 Answers
EditorGUILayout.ObjectField on a ScriptableObject's inspector doesn't update properly 0 Answers
Serialize child ScriptableObject asset values in parent ScriptableObject asset. 0 Answers
ScriptableObject not Serializing? 0 Answers
How can I modify 'SerializedProperty' that contain 'Array' in Custom inspector? 0 Answers