62 lines
1.6 KiB
C#
62 lines
1.6 KiB
C#
#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();
|
|
}
|
|
}
|
|
} |