public static ITransitionCondition Deserialize(string serializedClassWrapper) { SerializedClassWrapper serializedConditionWrapper = JsonUtility.FromJson <SerializedClassWrapper>(serializedClassWrapper); if (serializedConditionWrapper == null) { Debug.LogError("TransitionConditionSerializer - Deserialize failed to deserialize class wrapper!"); return(null); } Type type = Type.GetType(serializedConditionWrapper.typeName); MethodInfo genericMethod = typeof(TransitionConditionSerializer).GetMethod("DeserializeCondition", BindingFlags.Static | BindingFlags.NonPublic); MethodInfo method = genericMethod.MakeGenericMethod(type); return(method.Invoke(null, new object[] { serializedConditionWrapper.serializedClass }) as ITransitionCondition); }
public static string Serialize(ITransitionCondition condition) { if (condition == null) { Debug.LogError("TransitionConditionSerializer - Serialize was passed in null condition!"); return(""); } Type type = condition.GetType(); MethodInfo genericMethod = typeof(TransitionConditionSerializer).GetMethod("SerializeCondition", BindingFlags.Static | BindingFlags.NonPublic); MethodInfo method = genericMethod.MakeGenericMethod(type); string serializedCondition = (string)method.Invoke(null, new object[] { condition }); var serializedConditionWrapper = new SerializedClassWrapper(type, serializedCondition); return(JsonUtility.ToJson(serializedConditionWrapper, prettyPrint: true)); }