45 lines
1.3 KiB
C#
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);
|
||
|
}
|
||
|
}
|
||
|
}
|