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().SetRecipeSO(recipeSO); } } public void Hide() { gameObject.SetActive(false); } public void Show() { gameObject.SetActive(true); } }