using UnityEngine; using TMPro; using System.Collections; public class DamageDisplay : MonoBehaviour { public TextMeshProUGUI damageInfoText; public float floatSpeed = 1.0f; public float displayTime = 1.0f; // Adjust the duration you want the damage text to be displayed public Vector3 initialPosition; private void Start() { damageInfoText = GameObject.Find("UI").transform.GetChild(0).GetChild(9).gameObject.GetComponent(); initialPosition = damageInfoText.transform.position; } public IEnumerator ShowFloatDamageText(int damageAmount) { damageInfoText.text = $"Damage +{damageAmount}:\n Blood Hungry!!"; damageInfoText.gameObject.SetActive(true); float elapsedTime = 0f; while (elapsedTime < displayTime) { //the time.deltatime * 0.xf is very necessary to control the speed to which the text floats up, interesting because another text didnt require this float translation = floatSpeed * Time.deltaTime * 0.3f; damageInfoText.transform.Translate(Vector3.up * translation, Space.Self); elapsedTime += Time.deltaTime; yield return null; } damageInfoText.gameObject.SetActive(false); damageInfoText.transform.position = initialPosition; } }