70 lines
1.7 KiB
C#
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));
|
|
}
|
|
}
|