DCDC25-TwinCity/Assets/VRUIP/Scripts/UI/DropdownController.cs
2025-05-15 16:25:40 +02:00

60 lines
1.8 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace VRUIP
{
public class DropdownController : A_ColorController
{
[Header("Colors")]
[SerializeField] private Color normalColor;
[SerializeField] private Color hoverColor;
[SerializeField] private Color pressedColor;
[SerializeField] private Color textColor;
[Header("Components")]
[SerializeField] private TMP_Dropdown dropdown;
[SerializeField] private Toggle option;
[SerializeField] private TextMeshProUGUI selectedText;
[SerializeField] private TextMeshProUGUI optionText;
private void Awake()
{
SetupDropdown();
}
[ContextMenu("Setup Dropdown (VRUIP)")]
private void SetupDropdown()
{
var newColors = new ColorBlock()
{
normalColor = normalColor,
highlightedColor = hoverColor,
pressedColor = pressedColor,
selectedColor = hoverColor,
colorMultiplier = 1,
};
dropdown.colors = newColors;
option.colors = newColors;
selectedText.color = optionText.color = textColor;
}
protected override void SetColors(ColorTheme theme)
{
normalColor = theme.secondaryColor;
hoverColor = theme.fourthColor;
pressedColor = theme.thirdColor;
textColor = theme.primaryColor;
dropdown.Hide();
if (EventSystem.current.currentSelectedGameObject == dropdown.gameObject)
{
EventSystem.current.SetSelectedGameObject(null);
}
SetupDropdown();
}
}
}