Cosmic Strike
 
Cargando...
Buscando...
Nada coincide
ScoreManager.cs
Ir a la documentación de este archivo.
1
9
10using UnityEngine;
11using TMPro;
12
18public class ScoreManager : MonoBehaviour
19{
23 public static ScoreManager Instance { get; private set; }
24
25 // ========== CONFIGURACIÓN DE PUNTUACIÓN ==========
26
30 [Header("Puntos por eliminar bala enemiga")]
31 [Tooltip("Puntos que suma el jugador al destruir una bala enemiga")]
32 public int bulletScore = 50;
33
38 [Header("Puntos por tipo de enemigo")]
39 [Tooltip("Array de puntuaciones: index 0 = tipo 1, index 1 = tipo 2, etc.")]
40 public int[] enemyScores;
41
42 // ========== INTERFAZ DE USUARIO ==========
43
47 [Header("UI de puntuación")]
48 [Tooltip("Componente TMP_Text donde se muestra la puntuación")]
49 public TMP_Text scoreText;
50
51 // ========== ESTADO INTERNO ==========
52
56 private int currentScore = 0;
57
58 // ========== CICLO DE VIDA ==========
59
63 void Awake()
64 {
65 // Singleton básico
66 if (Instance != null && Instance != this)
67 {
68 Destroy(gameObject);
69 return;
70 }
71 Instance = this;
72 DontDestroyOnLoad(gameObject);
73 UpdateUI();
74 }
75
76 // ========== MÉTODOS PÚBLICOS DE PUNTUACIÓN ==========
77
81 public void AddBulletScore()
82 {
84 }
85
90 public void AddEnemyScoreByType(int typeIndex)
91 {
92 if (typeIndex >= 0 && typeIndex < enemyScores.Length)
93 {
94 AddScore(enemyScores[typeIndex]);
95 }
96 else
97 {
98 Debug.LogWarning($"ScoreManager: índice de tipo de enemigo inválido ({typeIndex}).");
99 }
100 }
101
106 public void AddEnemyScoreCustom(int points)
107 {
108 AddScore(points);
109 }
110
111 // ========== MÉTODOS PRIVADOS ==========
112
117 private void AddScore(int amount)
118 {
119 currentScore += amount;
120 UpdateUI();
121 }
122
126 private void UpdateUI()
127 {
128 if (scoreText != null)
129 scoreText.text = currentScore.ToString();
130 }
131}
Sistema de puntuación centralizado que gestiona puntos obtenidos por el jugador. Permite asignar punt...
void AddEnemyScoreByType(int typeIndex)
Suma puntos en función del tipo de enemigo destruido, usando su índice en el array enemyScores.
void AddEnemyScoreCustom(int points)
Suma una cantidad específica de puntos (ej. jefes, eventos especiales...).
void AddBulletScore()
Suma los puntos correspondientes por destruir una bala enemiga.
void UpdateUI()
Refresca el texto de puntuación en pantalla si el componente scoreText está asignado.
void AddScore(int amount)
Añade puntos a la puntuación total y actualiza la UI.
int[] enemyScores
Array que define la puntuación por tipo de enemigo. El índice representa el tipo, el valor representa...
void Awake()
Inicializa el Singleton y actualiza la UI. Persiste entre escenas.
static ScoreManager Instance
Instancia global del ScoreManager accesible desde cualquier parte del código.
TMP_Text scoreText
Referencia al componente de TextMeshPro donde se muestra la puntuación actual.
int currentScore
Puntuación acumulada durante la partida.
int bulletScore
Puntos que se otorgan al destruir una bala enemiga.