1
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace BITKit.UX
|
||||
{
|
||||
public class UXDateTime : MonoBehaviour
|
||||
{
|
||||
[SerializeReference,SubclassSelector]private IReference timeFormat;
|
||||
[SerializeReference, SubclassSelector] private IReference path;
|
||||
[SerializeField] private bool isTimerNotClock;
|
||||
private DateTime _dateTime;
|
||||
private DateTime _startTime;
|
||||
private Label timeLabel;
|
||||
private string lastTime;
|
||||
private void Start()
|
||||
{
|
||||
timeLabel = GetComponent<UIDocument>().rootVisualElement.Q<Label>(path.Value);
|
||||
_startTime = DateTime.Now;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
var time = DateTime.Now;
|
||||
if (isTimerNotClock)
|
||||
{
|
||||
time = new DateTime(DateTime.Now.Ticks - _startTime.Ticks);
|
||||
}
|
||||
var str = GetTime();
|
||||
if(Equals(str,lastTime)) return;
|
||||
lastTime = str;
|
||||
timeLabel.text = lastTime;
|
||||
return;
|
||||
string GetTime() => timeFormat is not null
|
||||
? time.ToString(timeFormat.Value)
|
||||
: time.ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user