using System.Collections.Generic; using TMPro; using UnityEngine; public class FloatingDamage : MonoBehaviour { public GameObject floatingDamagePrefab; private List<GameObject> floatingDamageObjects = new List<GameObject>(); private GameObject currentObject; public Transform startMarker; public Transform endMarker; private Color32 oneDmg = new Color32(255, 0, 0, 0); private Color32 twoDmg = new Color32(0, 155, 255, 0); private Color32 moreThanTwoDmg = new Color32(255, 206, 0, 0); public void SpawnDamageNumber(int damageAmt, bool healing) { if (floatingDamageObjects.Count < 10) { currentObject = (Instantiate(floatingDamagePrefab as GameObject, transform)); floatingDamageObjects.Add(currentObject); currentObject.GetComponent<MoveDamageValue>().SetMarkers(startMarker, endMarker); } else { for (int i = 0; i < floatingDamageObjects.Count; i++) { if (!floatingDamageObjects[i].activeSelf) { currentObject = floatingDamageObjects[i]; currentObject.SetActive(true); currentObject.transform.position = transform.position; currentObject.GetComponent<MoveDamageValue>().ResetPosition(); break; } } } currentObject.GetComponent<TextMeshProUGUI>().text = damageAmt.ToString(); if (healing) currentObject.GetComponent<TextMeshProUGUI>().color = Color.green; else { if (damageAmt == 1) currentObject.GetComponent<TextMeshProUGUI>().color = oneDmg; else if (damageAmt == 2) currentObject.GetComponent<TextMeshProUGUI>().color = twoDmg; else if (damageAmt > 2) currentObject.GetComponent<TextMeshProUGUI>().color = moreThanTwoDmg; } } }