Files
puzzle-game/Assets/Prefabs/UI/Scripts/MapIndicatorController.cs
2025-07-17 17:16:02 +02:00

42 lines
1016 B
C#

using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// MapIndicatorController updates the UI to show the current map.
/// </summary>
[RequireComponent(typeof(Image))]
public class MapIndicatorController : MonoBehaviour
{
[Header("Configuration")]
public Color[] colors =
{
new(34f / 255, 139f / 255, 230f / 255),
new(250f / 255, 82f / 255, 82f / 255),
new(64f / 255, 192f / 255, 87f / 255)
};
private Image _image;
private void Start()
{
_image = GetComponent<Image>();
_image.color = colors[GameManager.Instance.currentMapIdx];
}
private void OnEnable()
{
GameManager manager = GameManager.Instance;
manager.onMapSwitch.AddListener(OnMapSwitch);
}
private void OnDisable()
{
GameManager manager = GameManager.Instance;
manager.onMapSwitch.RemoveListener(OnMapSwitch);
}
private void OnMapSwitch(int idx, Vector3 o)
{
_image.color = colors[idx];
}
}