Files
crtr/Assets/Cryville/Crtr/NetworkTaskWorkerTicker.cs
2023-03-26 23:25:20 +08:00

37 lines
970 B
C#

using Cryville.Common.Unity;
using UnityEngine;
using UnityEngine.UI;
namespace Cryville.Crtr {
public class NetworkTaskWorkerTicker : MonoBehaviour {
private Image _image;
private float timer;
#pragma warning disable IDE0051
void Awake() {
_image = GetComponent<Image>();
}
static Color _idleColor = new Color(1, 1, 1, .5f);
static Color _tickColor1 = new Color(1, 1, 1, 1);
static Color _tickColor2 = new Color(1, 1, 1, .8f);
static Color _suspendedColor = new Color(1, 0, 0, 1);
void Update() {
switch (Game.NetworkTaskWorker.TickBackgroundTasks()) {
case WorkerStatus.Idle:
_image.color = _idleColor;
timer = 0f;
break;
case WorkerStatus.Suspended:
_image.color = _suspendedColor;
timer = 0f;
break;
case WorkerStatus.Working:
timer += Time.deltaTime;
timer %= 0.5f;
_image.color = timer < 0.25f ? _tickColor1 : _tickColor2;
break;
}
}
#pragma warning restore IDE0051
}
}