46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using TMPro;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
public class ExpTextController : MonoBehaviour {
|
|||
|
|
private TextMeshPro text;
|
|||
|
|
|
|||
|
|
[SerializeField] public float holdTime = 0.3f;
|
|||
|
|
[SerializeField] public float fadeTime = 0.2f;
|
|||
|
|
|
|||
|
|
[SerializeField] public float upwardForce = 2.0f;
|
|||
|
|
|
|||
|
|
[SerializeField] public float horizontalForce = 0.5f;
|
|||
|
|
|
|||
|
|
[SerializeField] public Rigidbody2D body;
|
|||
|
|
|
|||
|
|
private void Awake() {
|
|||
|
|
text = transform.GetComponent<TextMeshPro>();
|
|||
|
|
body = GetComponent<Rigidbody2D>();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Setup(int amount) {
|
|||
|
|
text.SetText("+" + amount.ToString());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Start is called before the first frame update
|
|||
|
|
private void Start() {
|
|||
|
|
body.AddForce(new Vector2(Random.Range(-0.5f, 0.5f) * horizontalForce,
|
|||
|
|
Random.Range(0f, 1f) * upwardForce));
|
|||
|
|
Invoke("StartFadeOut", holdTime);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void StartFadeOut() {
|
|||
|
|
StartCoroutine("FadeOut");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
IEnumerator FadeOut() {
|
|||
|
|
for (float i = fadeTime; i >= 0; i -= Time.deltaTime) {
|
|||
|
|
text.alpha = i / fadeTime;
|
|||
|
|
yield return null;
|
|||
|
|
}
|
|||
|
|
Destroy(gameObject);
|
|||
|
|
}
|
|||
|
|
}
|