2026-05-11 08:39:33 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
namespace Kill.UI.Components
|
|
|
|
|
{
|
|
|
|
|
public class TimeSelection : MonoBehaviour
|
|
|
|
|
{
|
2026-05-18 08:42:33 +08:00
|
|
|
public Text title;
|
|
|
|
|
public NumPicker hourPicker;
|
|
|
|
|
public NumPicker minutePicker;
|
|
|
|
|
public Text timeText;
|
|
|
|
|
public Button confirmButton;
|
|
|
|
|
public Button cancelButton;
|
|
|
|
|
Action<int, int> onConfirm;
|
|
|
|
|
int selectedHour;
|
|
|
|
|
int selectedMinute;
|
|
|
|
|
public void Init(int hour, int minute, Action<int, int> 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);
|
|
|
|
|
}
|
2026-05-11 08:39:33 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|