magique
Active member
I'm using Unity 2019.3.4f1 and the latest store version of Third Person Controller. I am getting very erratic results trying to use the Converse ability for Dialogue System. Although the bug does not appear to be in Converse itself, but rather the Serialization of abilities in general.
In stand-alone build the issue happens every time, but in editor mode it works in one scene, but not in another. I did extensive debugging and I see that AbilityStarted never gets called when I am having the issue. I traced it down to where it is Deserializing the ability starter in the following code:
m_Starter in this case is assigned null so I dug deeper and I see that in the following code inside DeserializeFields:
m_ObjectType is an empty string.
However, if I attach to Unity and re-create the Converse ability or even drag it to a different position in the list, it executes the Serialize function and assigns the correct m_ObjectType. but then when I execute the scene or build stand-alone, it thinks m_ObjectType is an empty string and refuses to deserialize the starter.
In stand-alone build the issue happens every time, but in editor mode it works in one scene, but not in another. I did extensive debugging and I see that AbilityStarted never gets called when I am having the issue. I traced it down to where it is Deserializing the ability starter in the following code:
C#:
m_Starter = m_StarterData.DeserializeFields(MemberVisibility.Public) as AbilityStarter;
m_Starter in this case is assigned null so I dug deeper and I see that in the following code inside DeserializeFields:
C#:
var objType = UnityEngineUtility.GetType(m_ObjectType);
m_ObjectType is an empty string.
However, if I attach to Unity and re-create the Converse ability or even drag it to a different position in the list, it executes the Serialize function and assigns the correct m_ObjectType. but then when I execute the scene or build stand-alone, it thinks m_ObjectType is an empty string and refuses to deserialize the starter.