killapp/Assets/Scripts/UI/Components/TimeSelection.cs

60 lines
1.9 KiB
C#
Raw Normal View History

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);
}
}
}