115 lines
4.4 KiB
C#
115 lines
4.4 KiB
C#
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<EnergyBar>();
|
|
energyBarRenderer = bar.GetComponent<EnergyBarRenderer>();
|
|
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;
|
|
}
|
|
}
|