|
|
- using System.Collections;
- using UnityEngine;
- using TMPro;
-
- [RequireComponent(typeof(TextMeshPro))]
- public class MoveAndFade : MonoBehaviour
- {
- [SerializeField]
- private float AnimationTime;
-
- [SerializeField]
- [Tooltip("End point in local position")]
- private Vector3 EndPoint;
-
- [SerializeField]
- private AnimationCurve FadeCurve;
-
- private TextMeshPro text;
-
- private void Start()
- {
- text = GetComponent<TextMeshPro>();
- StartCoroutine(FadeAndMove());
- }
-
- private IEnumerator FadeAndMove()
- {
- Vector3 startPoint = transform.position;
- Vector3 endPoint = transform.position + EndPoint;
- float startAlpha = text.color.a;
-
- float elapsedTime = 0;
-
- while(elapsedTime < AnimationTime)
- {
- float ratio = elapsedTime / AnimationTime;
-
- float fadeValue = Mathf.Lerp(startAlpha,0.0f, FadeCurve.Evaluate(ratio));
- text.color = new Color(text.color.r, text.color.g, text.color.b, fadeValue);
-
- transform.position = Vector3.Lerp(startPoint, endPoint, ratio);
-
- yield return new WaitForEndOfFrame();
- elapsedTime += Time.deltaTime;
- }
- Destroy(gameObject);
- }
- }
|