// Returns the prefab attribute for the given type. static private Prefab GetPrefab(Type inType, string inVariantName, bool inbLoad) { if (inVariantName == null) { inVariantName = string.Empty; } Prefab prefab = null; PrefabGroup prefabGroup; if (!s_CachedPrefabs.TryGetValue(inType.TypeHandle.Value.ToInt64(), out prefabGroup) && inbLoad) { Prefab[] prefabs = (Prefab[])Attribute.GetCustomAttributes(inType, typeof(Prefab), false); if (prefabs != null && prefabs.Length > 0) { prefabGroup = new PrefabGroup(prefabs); s_CachedPrefabs.Add(inType.TypeHandle.Value.ToInt64(), prefabGroup); } } if (prefabGroup != null) { prefabGroup.TryGetValue(inVariantName, out prefab); } return(prefab); }
public override void OnInspectorGUI() { DrawDefaultInspector(); PrefabGroup script = (PrefabGroup)target; GUILayout.BeginHorizontal(); if (GUILayout.Button("Instantiate Prefabs")) { script.InstantiatePrefabs(script.m_instances); } if (GUILayout.Button("Clear Prefabs")) { script.ClearPrefabs(); } GUILayout.EndHorizontal(); }