using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Kill.UI.Components { public class TimeSelection : MonoBehaviour { public Text title; public NumPicker hourPicker; public NumPicker minutePicker; public Text timeText; public Button confirmButton; public Button cancelButton; Action onConfirm; int selectedHour; int selectedMinute; public void Init(int hour, int minute, Action onConfirm) { hourPicker.Init(hour, OnHourChange); minutePicker.Init(minute, OnMinuteChange); this.onConfirm = onConfirm; selectedHour = hour; selectedMinute = minute; confirmButton.onClick.RemoveAllListeners(); cancelButton.onClick.RemoveAllListeners(); confirmButton.onClick.AddListener(OnConfirmClick); cancelButton.onClick.AddListener(OnCancelClick); OnHourChange(hour); OnMinuteChange(minute); } private void OnHourChange(int hour) { selectedHour = hour; string hourStr = hour < 10 ? "0" + hour : hour.ToString(); string minStr = selectedMinute < 10 ? "0" + selectedMinute : selectedMinute.ToString(); timeText.text = $"{hourStr}:{minStr}"; } private void OnMinuteChange(int minute) { selectedMinute = minute; string minStr = minute < 10 ? "0" + minute : minute.ToString(); string hourStr = selectedHour < 10 ? "0" + selectedHour : selectedHour.ToString(); timeText.text = $"{hourStr}:{minStr}"; } private void OnConfirmClick() { onConfirm?.Invoke(selectedHour, selectedMinute); Destroy(gameObject); } private void OnCancelClick() { Destroy(gameObject); } } }