KitchenChaos/Assets/Scripts/UI/DeliveryManagerUI.cs

63 lines
1.3 KiB
C#

using System;
using UnityEngine;
public class DeliveryManagerUI : MonoBehaviour
{
public static DeliveryManagerUI Instance { get; private set; }
[SerializeField] private Transform container;
[SerializeField] private Transform recipeTemplate;
private void Awake()
{
recipeTemplate.gameObject.SetActive(false);
Instance = this;
}
private void Start()
{
DeliveryManager.Instance.OnRecipeSpawned += DeliveryManager_OnRecipeSpawned;
DeliveryManager.Instance.OnRecipeCompleted += DeliveryManager_OnRecipeCompleted;
Show();
UpdateVisual();
}
private void DeliveryManager_OnRecipeCompleted(object sender, System.EventArgs e)
{
UpdateVisual();
}
private void DeliveryManager_OnRecipeSpawned(object sender, System.EventArgs e)
{
UpdateVisual();
}
private void UpdateVisual()
{
foreach (Transform child in container)
{
if (child == recipeTemplate)
{
continue;
}
Destroy(child.gameObject);
}
foreach (RecipeSO recipeSO in DeliveryManager.Instance.WaitingRecipeSOList)
{
Transform recipeTransform = Instantiate(recipeTemplate, container);
recipeTransform.gameObject.SetActive(true);
recipeTransform.GetComponent<DeliveryManagerSingleUI>().SetRecipeSO(recipeSO);
}
}
public void Hide()
{
gameObject.SetActive(false);
}
public void Show()
{
gameObject.SetActive(true);
}
}