示例#1
0
    private void PoolArea(QuickPool pool)
    {
        GUILayout.BeginVertical(poolBackground);
        GUILayout.BeginHorizontal(EditorStyles.toolbar);
        GUILayout.Space(10f);

        pool.foldout = EditorGUILayout.Foldout(pool.foldout, pool.poolName);
        GUILayout.FlexibleSpace();

        if (Application.isPlaying)
        {
            GUILayout.Label("Spawned: " + pool.spawnedCount + "/" + pool.totalCount);
        }

        if (GUILayout.Button("Clear", EditorStyles.toolbarButton, GUILayout.Width(80)))
        {
            pool.ClearAndDestroy();
        }

        if (GUILayout.Button("Preinstantiate", EditorStyles.toolbarButton, GUILayout.Width(80)))
        {
            pool.PreInstantiate();
        }

        GUI.color = Color.red;
        if (GUILayout.Button("-", EditorStyles.toolbarButton, GUILayout.Width(15)))
        {
            pool.ClearAndDestroy();
            if (pool.m_Root != null)
            {
                GameObject.DestroyImmediate(pool.m_Root.gameObject);
            }
            poolManager.pools.Remove(pool);
        }

        GUI.color = Color.white;

        GUILayout.EndHorizontal();

        if (pool.foldout)
        {
            pool.Prefab        = EditorGUILayout.ObjectField("Prefab: ", pool.Prefab, typeof(GameObject), false) as GameObject;
            pool.size          = EditorGUILayout.IntField("Pool size: ", pool.size);
            pool.allowMore     = EditorGUILayout.Toggle("Allow more: ", pool.allowMore);
            pool.debugMessages = EditorGUILayout.Toggle("Debug messages: ", pool.debugMessages);
        }

        GUILayout.EndVertical();
    }