45 lines
1.3 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
using Cysharp.Threading.Tasks;
using System;
namespace BulletHellTemplate
{
public class KillFeedEntryUI : MonoBehaviour
{
public Image killerIcon;
public TextMeshProUGUI killerNick;
public Image victimIcon;
public TextMeshProUGUI victimNick;
public CanvasGroup group;
public float lifetimeSec = 3f;
public void Setup(Sprite killer, string kNick, Sprite victim, string vNick)
{
if (killerIcon) killerIcon.sprite = killer;
if (killerNick) killerNick.text = kNick;
if (victimIcon) victimIcon.sprite = victim;
if (victimNick) victimNick.text = vNick;
FadeAndDestroyAsync().Forget();
}
private async UniTaskVoid FadeAndDestroyAsync()
{
if (!group) { await UniTask.Delay(TimeSpan.FromSeconds(lifetimeSec)); Destroy(gameObject); return; }
group.alpha = 1f;
await UniTask.Delay(TimeSpan.FromSeconds(lifetimeSec - 0.3f));
float t = 0f;
while (t < 0.3f)
{
t += Time.deltaTime;
group.alpha = 1f - (t / 0.3f);
await UniTask.Yield();
}
Destroy(gameObject);
}
}
}