public void ReadFrom(UnityEventBase obj, IIDMap idMap) { if (obj == null) { return; } object persistentCalls = m_persistentCallGroupInfo.GetValue(obj); if (persistentCalls == null) { return; } object calls = m_callsInfo.GetValue(persistentCalls); if (calls == null) { return; } IList list = (IList)calls; m_calls = new PersistentPersistentCall[list.Count]; for (int i = 0; i < list.Count; ++i) { object call = list[i]; PersistentPersistentCall persistentCall = new PersistentPersistentCall(); persistentCall.ReadFrom(call, idMap); m_calls[i] = persistentCall; } }
public static IIDMap <T> GetIDMapProvider <T>() { IIDMap <T> idMap = null; if (!idMaps.ContainsKey(typeof(T))) { idMap = new DictionaryIDMap <T>(); idMaps.Add(typeof(T), idMap); } else { idMap = idMaps[typeof(T)] as IIDMap <T>; } return(idMap); }
public void ReadFrom(object obj, IIDMap idMap) { if (obj == null) { m_Arguments = default(PersistentArgumentCache); m_CallState = default(UnityEventCallState); m_MethodName = null; m_Mode = default(PersistentListenerMode); m_Target = 0; return; } Initialize(obj.GetType()); m_Arguments = new PersistentArgumentCache(); m_Arguments.ReadFrom(m_argumentsFieldInfo.GetValue(obj), idMap); m_CallState = (UnityEventCallState)m_callStatFieldInfo.GetValue(obj); m_MethodName = (string)m_methodNameFieldInfo.GetValue(obj); m_Mode = (PersistentListenerMode)m_modeFieldInfo.GetValue(obj); UnityObject target = (UnityObject)m_targetFieldInfo.GetValue(obj); m_Target = idMap.ToID(target); }
public void ReadFrom(object obj, IIDMap idMap) { if (obj == null) { m_BoolArgument = false; m_FloatArgument = 0; m_IntArgument = 0; m_StringArgument = null; m_ObjectArgument = 0; m_ObjectArgumentAssemblyTypeName = null; return; } Initialize(obj.GetType()); m_BoolArgument = (bool)m_boolArgumentFieldInfo.GetValue(obj); m_FloatArgument = (float)m_floatArgumentFieldInfo.GetValue(obj); m_IntArgument = (int)m_intArgumentFieldInfo.GetValue(obj); m_StringArgument = (string)m_stringArgumentFieldInfo.GetValue(obj); UnityObject uobjArgument = (UnityObject)m_objectArgumentFieldInfo.GetValue(obj); m_ObjectArgument = idMap.ToID(uobjArgument); m_ObjectArgumentAssemblyTypeName = (string)m_objectArgumentAssemblyTypeNameFieldInfo.GetValue(obj); }
public void WriteTo(UnityEventBase obj, Dictionary <long, UnityObject> objects, IIDMap idMap) { if (obj == null) { return; } if (m_calls == null) { return; } object persistentCalls = Activator.CreateInstance(m_persistentCallGroupInfo.FieldType); object calls = Activator.CreateInstance(m_callsInfo.FieldType); IList list = (IList)calls; for (int i = 0; i < m_calls.Length; ++i) { PersistentPersistentCall persistentCall = m_calls[i]; if (persistentCall != null) { object call = Activator.CreateInstance(m_callType); persistentCall.WriteTo(call, objects); list.Add(call); } else { list.Add(null); } } m_callsInfo.SetValue(persistentCalls, calls); m_persistentCallGroupInfo.SetValue(obj, persistentCalls); }
public void GetDependencies(UnityEventBase obj, Dictionary <long, UnityObject> dependencies, IIDMap idMap) { if (obj == null) { return; } object persistentCalls = m_persistentCallGroupInfo.GetValue(obj); if (persistentCalls == null) { return; } object calls = m_callsInfo.GetValue(persistentCalls); if (calls == null) { return; } IList list = (IList)calls; for (int i = 0; i < list.Count; ++i) { object call = list[i]; PersistentPersistentCall persistentCall = new PersistentPersistentCall(); persistentCall.GetDependencies(call, dependencies, idMap); } }
protected void AddDependency(UnityObject obj, Dictionary <long, UnityObject> dependencies, IIDMap idMap) { if (obj == null) { return; } long instanceId = idMap.ToID(obj); if (!dependencies.ContainsKey(instanceId)) { dependencies.Add(instanceId, obj); } }
public void GetDependencies(object obj, Dictionary <long, UnityObject> dependencies, IIDMap idMap) { if (obj == null) { return; } Initialize(obj.GetType()); PersistentArgumentCache args = new PersistentArgumentCache(); args.GetDependencies(m_argumentsFieldInfo.GetValue(obj), dependencies, idMap); UnityObject target = (UnityObject)m_targetFieldInfo.GetValue(obj); AddDependency(target, dependencies, idMap); }
public void GetDependencies(object obj, Dictionary <long, UnityObject> dependencies, IIDMap idMap) { if (obj == null) { return; } Initialize(obj.GetType()); UnityObject uobjArgument = (UnityObject)m_objectArgumentFieldInfo.GetValue(obj); AddDependency(uobjArgument, dependencies, idMap); }
public RuntimeShaderUtil() { m_idMap = IOC.Resolve <IIDMap>(); }