private static void DeserializeVariables(IVariableSource variableSource, Dictionary <string, object> dict, List <UnityEngine.Object> unityObjects) { object obj; if (dict.TryGetValue("Variables", out obj)) { List <SharedVariable> list = new List <SharedVariable>(); IList list2 = obj as IList; for (int i = 0; i < list2.Count; i++) { SharedVariable item = JSONDeserializationDeprecated.DeserializeSharedVariable(list2[i] as Dictionary <string, object>, variableSource, true, unityObjects); list.Add(item); } variableSource.SetAllVariables(list); } }
private static object ValueToObject(Task task, Type type, object obj, IVariableSource variableSource, List <UnityEngine.Object> unityObjects) { if (type.Equals(typeof(SharedVariable)) || type.IsSubclassOf(typeof(SharedVariable))) { SharedVariable sharedVariable = JSONDeserializationDeprecated.DeserializeSharedVariable(obj as Dictionary <string, object>, variableSource, false, unityObjects); if (sharedVariable == null) { sharedVariable = (TaskUtility.CreateInstance(type) as SharedVariable); } return(sharedVariable); } if (type.Equals(typeof(UnityEngine.Object)) || type.IsSubclassOf(typeof(UnityEngine.Object))) { return(JSONDeserializationDeprecated.IndexToUnityObject(Convert.ToInt32(obj), unityObjects)); } if (!type.IsPrimitive) { if (!type.Equals(typeof(string))) { goto IL_C5; } } try { object result = Convert.ChangeType(obj, type); return(result); } catch (Exception) { object result = null; return(result); } IL_C5: if (type.IsSubclassOf(typeof(Enum))) { try { object result = Enum.Parse(type, (string)obj); return(result); } catch (Exception) { object result = null; return(result); } } if (type.Equals(typeof(Vector2))) { return(JSONDeserializationDeprecated.StringToVector2((string)obj)); } if (type.Equals(typeof(Vector3))) { return(JSONDeserializationDeprecated.StringToVector3((string)obj)); } if (type.Equals(typeof(Vector4))) { return(JSONDeserializationDeprecated.StringToVector4((string)obj)); } if (type.Equals(typeof(Quaternion))) { return(JSONDeserializationDeprecated.StringToQuaternion((string)obj)); } if (type.Equals(typeof(Matrix4x4))) { return(JSONDeserializationDeprecated.StringToMatrix4x4((string)obj)); } if (type.Equals(typeof(Color))) { return(JSONDeserializationDeprecated.StringToColor((string)obj)); } if (type.Equals(typeof(Rect))) { return(JSONDeserializationDeprecated.StringToRect((string)obj)); } if (type.Equals(typeof(LayerMask))) { return(JSONDeserializationDeprecated.ValueToLayerMask(Convert.ToInt32(obj))); } if (type.Equals(typeof(AnimationCurve))) { return(JSONDeserializationDeprecated.ValueToAnimationCurve((Dictionary <string, object>)obj)); } object obj2 = TaskUtility.CreateInstance(type); JSONDeserializationDeprecated.DeserializeObject(task, obj2, obj as Dictionary <string, object>, variableSource, unityObjects); return(obj2); }