55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Watermelon
|
|
{
|
|
public class FloatingTextHitBehavior : FloatingTextBaseBehavior
|
|
{
|
|
[SerializeField] TextMeshProUGUI floatingText;
|
|
|
|
[Space]
|
|
[SerializeField] float delay;
|
|
[SerializeField] float disableDelay;
|
|
[SerializeField] float startScale;
|
|
[SerializeField] float time;
|
|
[SerializeField] Ease.Type easing;
|
|
|
|
[Space]
|
|
[SerializeField] float scaleTime;
|
|
[SerializeField] Ease.Type scaleEasing;
|
|
|
|
private Vector3 defaultScale;
|
|
|
|
private void Awake()
|
|
{
|
|
defaultScale = transform.localScale;
|
|
}
|
|
|
|
public override void Activate(string text, float scaleMultiplier, Color color)
|
|
{
|
|
floatingText.text = text;
|
|
floatingText.color = color;
|
|
|
|
int sign = Random.value >= 0.5f ? 1 : -1;
|
|
|
|
transform.localScale = defaultScale * startScale * scaleMultiplier;
|
|
transform.localRotation = Quaternion.Euler(70, 0, 18 * sign);
|
|
|
|
Tween.DelayedCall(delay, delegate
|
|
{
|
|
transform.DOLocalRotate(Quaternion.Euler(70, 0, 0), time).SetEasing(easing).OnComplete(delegate
|
|
{
|
|
Tween.DelayedCall(disableDelay, delegate
|
|
{
|
|
gameObject.SetActive(false);
|
|
|
|
InvokeCompleteEvent();
|
|
});
|
|
});
|
|
|
|
transform.DOScale(defaultScale, scaleTime).SetEasing(scaleEasing);
|
|
});
|
|
}
|
|
}
|
|
} |