TG9six 03a642d635 first push
first push
2025-09-06 17:17:39 +04:00

70 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.Events;
using DG.Tweening;
using UnityEngine.UI;
//Thomas09
//Text changes are sent from the server.
public class WaveText : MonoBehaviour
{
[SerializeField] private GameObject seperator;
[SerializeField] private TMP_Text waveText;
[SerializeField] private TMP_Text waveHeading;
private string cachedMessage = "";
private UnityEvent OnTextChangedEvent = new UnityEvent();
[SerializeField] private CanvasGroup textGroup;
private void Awake()
{
textGroup.alpha = 0;
waveText.text = "";
seperator.SetActive(false);
}
private void Start()
{
OnTextChangedEvent.AddListener(OnTextChanged);
}
private void Update()
{
if (cachedMessage != waveText.text)
{
cachedMessage = waveText.text;
OnTextChangedEvent?.Invoke();
}
}
public TMP_Text GetWaveText() => waveText;
public TMP_Text GetWaveHeading() => waveHeading;
public void ResetWaveText()
{
textGroup.alpha = 0;
seperator.SetActive(false);
waveText.text = "";
waveHeading.text = "";
}
private void OnTextChanged()
{
seperator.SetActive(true);
textGroup.alpha = 0;
transform.localScale = new Vector3(1, 0, 1);
DOTween.Sequence()
.Append(transform.DOScaleY(1, 0.15f))
.Join(textGroup.DOFade(1.0f, 0.15f).SetEase(Ease.InSine))
.Append(transform.DOShakePosition(0.5f, 15, 40, 90, false, true))
.AppendInterval(3.5f)
.Append(transform.DOScaleY(0, 0.15f))
.Join(textGroup.DOFade(0.0f, 0.1f).SetEase(Ease.OutSine));
}
}