Exemple #1
0
        // 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();
    }