60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
|
|
using System;
|
||
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
|
||
|
|
namespace Kill.UI.Components
|
||
|
|
{
|
||
|
|
public class TimeSelection : MonoBehaviour
|
||
|
|
{
|
||
|
|
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);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|