EscapeShooter/My project/Assets/Project Files/Modules/Floating Text/FloatingTextBehavior.cs

62 lines
1.6 KiB
C#
Raw Normal View History

#pragma warning disable 0618
using UnityEngine;
namespace Watermelon
{
public class FloatingTextBehavior : FloatingTextBaseBehavior
{
[Space]
[SerializeField] Vector3 offset;
[SerializeField] float time;
[SerializeField] Ease.Type easing;
[Space]
[SerializeField] float scaleTime;
[SerializeField] AnimationCurve scaleAnimationCurve;
private Vector3 defaultScale;
private TweenCase scaleTween;
private TweenCase moveTween;
private void Awake()
{
defaultScale = transform.localScale;
}
public override void Activate(string text, float scaleMultiplier, Color color)
{
textRef.text = text;
textRef.color = color;
transform.localScale = Vector3.zero;
scaleTween = transform.DOScale(defaultScale * scaleMultiplier, scaleTime).SetCurveEasing(scaleAnimationCurve);
moveTween = transform.DOMove(transform.position + offset, time).SetEasing(easing).OnComplete(delegate
{
gameObject.SetActive(false);
InvokeCompleteEvent();
});
}
public void AddOnTimeReached(float time, SimpleCallback callback)
{
if (moveTween.ExistsAndActive())
{
moveTween.OnTimeReached(time, callback);
}
}
public void SetText(string text)
{
textRef.text = text;
}
public void Reset()
{
scaleTween.KillActive();
moveTween.KillActive();
}
}
}