private static T InstantiateNInitialize(MonoObjectConstructMaterials material) { GameObject temp = Instantiate(material.prefab, Vector3.zero, Quaternion.identity) as GameObject; temp.GetComponent <T>().GetType().GetMethod("Initialize").Invoke(temp.GetComponent <T>(), material.parameters); return(temp.GetComponent <T>()); }
public static void RegisterSingleton(string id, MonoObjectConstructMaterials materials) { if (!singletonMap.ContainsKey(id)) { singletonMap.Add(id, InstantiateNInitialize(materials)); } else { throw new Exception("Class already registered!!"); } }
public static T CreateInstance(MonoObjectConstructMaterials materials) { return(InstantiateNInitialize(materials)); }