Blipples

FloatingTextManager

Feb 15th, 2025 (edited)
6
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. public class FloatingTextManager : NetworkBehaviour
  2. {
  3. public static FloatingTextManager Instance { get; private set; }
  4.  
  5. [SerializeField]
  6. private FloatingText floatingTextObject;
  7.  
  8. private void Awake()
  9. {
  10. if (Instance == null)
  11. {
  12. Instance = this;
  13. }
  14. else
  15. {
  16. Destroy(gameObject);
  17. }
  18. }
  19.  
  20. [ServerRpc(RequireOwnership = false)]
  21. public void RPC_SpawnDamageNumber(NetworkObject target, int amount)
  22. {
  23. // Call the observers RPC to spawn the damage number on the target client
  24. SpawnDamageNumber(target, amount);
  25. }
  26.  
  27. private void SpawnDamageNumber(NetworkObject target, int amount)
  28. {
  29. Scene targetScene = target.gameObject.scene;
  30. Color textColor = amount >= 0 ? Color.green : Color.red;
  31. floatingTextObject.SetText(amount.ToString(), textColor);
  32.  
  33. SpriteRenderer spriteRenderer = target.GetComponent<SpriteRenderer>();
  34. float spriteHeight = spriteRenderer.bounds.size.y;
  35. Vector3 topPosition = target.transform.position + new Vector3(0, spriteHeight * 1.25f, 0);
  36.  
  37. SpawnManager.Instance.RPC_SpawnObjectAtPosition(floatingTextObject.gameObject, targetScene, topPosition);
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment