Files
Studio/Assets/Scripts/Studio/UI/Elements/UI_MiniMapHeightButton.cs
2025-05-21 11:49:52 +09:00

69 lines
1.7 KiB
C#

using TMPro;
using UnityEditor.Localization.Plugins.XLIFF.V20;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace XED.UI
{
public class UI_MiniMapHeightButton : UIBase
{
public Panel_MiniMap panel_MiniMap;
RectTransform rect;
TMP_InputField inputField;
public float heightValue;
public bool minMaxButton;
public override void AfterAwake()
{
rect = GetComponent<RectTransform>();
GetComponent<Button>().onClick.AddListener(OnClickButton);
inputField = GetComponentInChildren<TMP_InputField>();
inputField.onEndEdit.AddListener(OnEndEdit);
}
void OnClickButton()
{
panel_MiniMap.ChangeImageForButton(this);
}
void OnEndEdit(string input)
{
float.TryParse(input, out float value);
if (value <= panel_MiniMap.barMinHeight || value >= panel_MiniMap.barMaxHeight)
{
value = heightValue;
}
UpdateHeight(value);
panel_MiniMap.ChangeNewImage(this, value);
}
public void UpdateHeight(float value)
{
heightValue = value;
SetHeightText(value);
SetButtonPos(value);
}
void SetHeightText(float value)
{
int textValue = Mathf.RoundToInt(value);
inputField.text = textValue.ToString();
}
public void SetButtonPos(float value)
{
if (minMaxButton)
return;
float yPos = value / panel_MiniMap.unit;
rect.anchoredPosition = new Vector2(0, yPos);
}
}
}