Beispiel #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        BubblesManager bubblesManager = (BubblesManager)target;

        if (bubblesManager.bubbleSettings.Count > 0)
        {
            foldOut = EditorGUILayout.Foldout(foldOut, "Bubble Types");
        }

        if (foldOut)
        {
            if (bubblesManager.bubbleSettings.Count < foldOutsList.Count)
            {
                if (bubblesManager.bubbleSettings.Count == 0)
                {
                    foldOutsList.RemoveRange(0, foldOutsList.Count);
                }
                else
                {
                    foldOutsList.RemoveRange(bubblesManager.bubbleSettings.Count - 1, foldOutsList.Count - bubblesManager.bubbleSettings.Count);
                }
            }

            for (int i = 0; i < bubblesManager.bubbleSettings.Count; i++)
            {
                if (foldOutsList.Count - 1 < i)
                {
                    foldOutsList.Add(true);
                }

                foldOutsList[i] = EditorGUILayout.Foldout(foldOutsList[i], "Bubble: " + i.ToString());

                if (foldOutsList[i])
                {
                    GUILayout.Space(20);
                    BubblesManager.BubbleSettings bubbleSetting = bubblesManager.bubbleSettings[i];

                    GUILayout.BeginHorizontal();

                    GUIStyle style = new GUIStyle();
                    float    size  = 50f * bubbleSetting.size / bubblesManager.maxSize;
                    style.fixedHeight = size;
                    style.fixedWidth  = size;
                    GUI.contentColor  = bubbleSetting.color;
                    GUILayout.Label(bubbleTexture, style);

                    GUILayout.BeginVertical();

                    GUILayout.Label("Bubble Color:");
                    bubbleSetting.color = EditorGUILayout.ColorField(bubblesManager.bubbleSettings[i].color);

                    GUILayout.EndVertical();

                    GUILayout.EndHorizontal();


                    GUILayout.Label("Bubble Size:");
                    bubbleSetting.size = EditorGUILayout.Slider(bubbleSetting.size, bubblesManager.minSize, bubblesManager.maxSize);
                    GUILayout.Label("Bubble Speed:");
                    bubbleSetting.speed = EditorGUILayout.Slider(bubbleSetting.speed, bubblesManager.minSpeed, bubblesManager.maxSpeed);
                    bubblesManager.bubbleSettings[i] = bubbleSetting;
                }
            }
        }

        GUILayout.BeginHorizontal();

        if (GUILayout.Button("Add Bubble"))
        {
            bubblesManager.AddNewBubbleType();
        }
        if (bubblesManager.bubbleSettings.Count > 0)
        {
            if (GUILayout.Button("Remove Bubble"))
            {
                bubblesManager.RemoveBubbleType();
            }
        }

        GUILayout.EndHorizontal();
    }
 private void Awake()
 {
     instance = this;
 }
Beispiel #3
0
 private void OnApplicationQuit()
 {
     _i = null;
 }