using EnergyBarToolkit; using UnityEngine; [ExecuteInEditMode] public class BarOptionsGUI : MonoBehaviour { public const string FormatHelp = "Format Help:\r\n \r\n{cur} - current int value\r\n{min} - minimal value\r\n{max} - maximum value\r\n{cur%} - current % value (0 - 100)\r\n{cur2%} - current % value with precision of tens (0.0 - 100.0)\r\n\r\nExamples:\r\n{cur}/{max} - 27/100\r\n{cur%} % - 27 %"; public GameObject bar; public Rect position = new Rect(10f, 100f, 200f, 100f); public GUISkin skin; public bool allowBurn = true; public bool allowChangeBarColor; public bool changeBurnCollorAuto = true; public bool allowChangeDirection; private EnergyBar energyBar; private EnergyBarRenderer energyBarRenderer; private void Start() { } private void OnGUI() { GUI.skin = skin; energyBar = bar.GetComponent(); energyBarRenderer = bar.GetComponent(); GUILayout.BeginArea(position); GUILayout.Label("Change Value:"); energyBar.valueCurrent = (int)GUILayout.HorizontalSlider(energyBar.valueCurrent, energyBar.valueMin, energyBar.valueMax); if (energyBarRenderer != null) { if (allowBurn) { energyBarRenderer.effectBurn = GUILayout.Toggle(energyBarRenderer.effectBurn, "Burn Effect (on subtraction)", skin.toggle); } energyBarRenderer.effectSmoothChange = GUILayout.Toggle(energyBarRenderer.effectSmoothChange, "Smooth Change", skin.toggle); energyBarRenderer.effectBlink = GUILayout.Toggle(energyBarRenderer.effectBlink, "Blink when energy is low (NEW!)", skin.toggle); if (allowChangeBarColor) { GUILayout.Space(10f); GUILayout.BeginHorizontal(); if (GUILayout.Toggle(energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Solid, "Solid Color")) { energyBarRenderer.textureBarColorType = EnergyBarBase.ColorType.Solid; } if (GUILayout.Toggle(energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Gradient, "Gradient (NEW!)")) { energyBarRenderer.textureBarColorType = EnergyBarBase.ColorType.Gradient; } GUILayout.EndHorizontal(); GUI.enabled = energyBarRenderer.textureBarColorType == EnergyBarBase.ColorType.Solid; GUILayout.BeginHorizontal(); GUILayout.Label("R:"); energyBarRenderer.textureBarColor.r = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.r, 0f, 1f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("G:"); energyBarRenderer.textureBarColor.g = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.g, 0f, 1f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("B:"); energyBarRenderer.textureBarColor.b = GUILayout.HorizontalSlider(energyBarRenderer.textureBarColor.b, 0f, 1f); GUILayout.EndHorizontal(); GUI.enabled = false; if (changeBurnCollorAuto) { energyBarRenderer.effectBurnTextureBarColor = energyBarRenderer.textureBarColor; energyBarRenderer.effectBurnTextureBarColor.a = 0.5f; } } if (allowChangeDirection) { GUILayout.Space(10f); GUILayout.Label("Direction: "); GUILayout.BeginHorizontal(); if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.LeftToRight, "L -> R")) { energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.LeftToRight; } if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.TopToBottom, "T -> B")) { energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.TopToBottom; } if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.RightToLeft, "R -> L")) { energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.RightToLeft; } if (GUILayout.Toggle(energyBarRenderer.growDirection == EnergyBarBase.GrowDirection.BottomToTop, "B -> T")) { energyBarRenderer.growDirection = EnergyBarBase.GrowDirection.BottomToTop; } GUILayout.EndHorizontal(); } if (energyBarRenderer.labelEnabled) { GUILayout.Space(20f); GUILayout.Label("Label Format:"); energyBarRenderer.labelFormat = GUILayout.TextField(energyBarRenderer.labelFormat); GUILayout.Label("Format Help:\r\n \r\n{cur} - current int value\r\n{min} - minimal value\r\n{max} - maximum value\r\n{cur%} - current % value (0 - 100)\r\n{cur2%} - current % value with precision of tens (0.0 - 100.0)\r\n\r\nExamples:\r\n{cur}/{max} - 27/100\r\n{cur%} % - 27 %"); } } GUILayout.EndArea(); GUI.skin = null; } }