Lección 5.2: ¿Cómo monitorizar el puntaje?

Tutorial

·

Beginner

·

+10XP

·

70 mins

·

(329)

Unity Technologies

Lección 5.2: ¿Cómo monitorizar el puntaje?

Descripción general:

Los objetos entran volando a la Escena y el jugador puede hacer clic en ellos para destruirlos, pero no ocurre nada. En esta lección mostraremos un puntaje en la interfaz de usuario que monitoriza y muestra los puntos del jugador. Le daremos a cada objetivo un valor distinto y se agregarán o reducirán puntos al hacer clic. Por último, agregaremos explosiones geniales cuando se destruye cada objetivo.

Resultado del proyecto:

Una sección «Score: » se mostrará en la interfaz de usuario y comenzará en 0. Cuando el jugador haga clic en el objetivo, el puntaje se actualizará y las partículas explotarán mientras se destruye el objetivo. Cada objetivo «Bueno» agrega un valor distinto al puntaje, mientras que un objetivo «Malo» reduce el puntaje.

Languages available:

1. ¿Cómo agregar la posición del texto del puntaje en la pantalla?

Para poder mostrar el puntaje en la pantalla, necesitamos agregar nuestro primer elemento de la interfaz de usuario.

  1. En la Hierarchy, Create > UI > TextMeshPro text, después, si se te solicita, haz clic en el botón para Import TMP Essentials.
  2. Cambia el nombre del nuevo objeto «Score Text» (Texto del puntaje), después aléjate para ver el canvas en la vista de Escena.
  3. Cambia el Anchor Point para que esté anclado desde la esquina superior izquierda.
  4. En el Inspector, cambia su Pos X y Pos Y para que esté en la esquina superior izquierda.

2. ¿Cómo editar las propiedades de Score Text?

Ahora que el texto básico está en la Escena y en la posición correcta, debemos editar sus propiedades para que luzca bien y tenga el texto correcto.

  1. Cambia el texto a «Score:» (Puntaje).
  2. Elige un Font Asset (Recurso de fuente), Style (Estilo), Size (Tamaño) y Vertex Color (Color del vértice) para que se vean bien en contraste con el fondo.

3. ¿Cómo inicializar la variable y el texto del puntaje?

Tenemos un excelente lugar para mostrar el puntaje en la interfaz de usuario, pero no se ve nada ahí. Necesitamos que la interfaz de usuario muestre una variable de puntaje para que el jugador conozca sus puntos.

  1. En la parte superior de GameManager.cs, agrega «using TMPro;».
  2. Declara un nuevo public TextMeshProUGUI scoreText, después asigna esa variable en el Inspector.
  3. Crea una nueva variable private int score e inicialízala en Start() como score = 0;.
  4. También en Start(), define scoreText.text = "Score: " + score;.

4. ¿Cómo crear un nuevo método UpdateScore?

El texto de puntaje muestra la variable de puntos a la perfección, pero nunca se actualiza. Necesitamos escribir una nueva función que acumule los puntos para mostrarlos en la interfaz de usuario.

  1. Crea un nuevo método private void UpdateScore que requiera un parámetro int scoreToAdd.
  2. Corta y pega scoreText.text = "Score: " + score; en el nuevo método, después llama al UpdateScore(0) en Start().
  3. En UpdateScore(), incrementa el puntaje al sumar
    score += scoreToAdd;.
  4. Llama al UpdateScore(5) en la función spawnTarget().

5. ¿Cómo agregar puntos cuando se destruyen los objetivos?

Ahora que tenemos un método para actualizar el puntaje, debemos llamar al Script de los objetivos cada vez que uno se destruya.

  1. En GameManager.cs, haz que el método UpdateScore sea public.
  2. En Target.cs, crea una referencia a private GameManager gameManager;.
  3. Inicializa GameManager in Start() con el método Find().
  4. Cuando un objetivo se destruya, llama a UpdateScore(5);, después elimina la llamada del método en SpawnTarget().

6. ¿Cómo agregar un valor de puntos a cada objetivo?

El puntaje se actualiza cuando se hace clic en los objetivos, pero queremos darle a cada uno de los objetivos un valor distinto. Los objetivos buenos deben tener un puntaje variado y los objetivos malos deben restar puntos.

  1. En Target.cs, crea una nueva variable public int pointValue.
  2. En cada uno de los Inspectors del Target Prefab define Point Value al valor que definas para cada uno de ellos, incluido el valor negativo del objetivo malo.
  3. Agrega la nueva variable a UpdateScore(pointValue);.

7. ¿Cómo agregar una partícula de explosión?

El puntaje es totalmente funcional, pero hacer clic en los objetivos es un poco... insatisfactorio. Para darle un poco más de interés, agreguemos algunas partículas explosivas cada vez que se hace clic en un objetivo.

  1. En Target.cs, agrega una nueva variable public ParticleSystem explosionParticle.
  2. Por cada uno de tus Prefabs de objetivo, asigna Prefab de partículas en Course Library > Particles a la variable Explosion Particle.
  3. En la función OnMouseDown(), crea una instancia de un nuevo Prefab de explosión.

8. Resumen de la lección

Nueva funcionalidad:

  • Hay un elemento de interfaz de usuario para el puntaje en la pantalla
  • El puntaje del jugador se registra y muestra mediante el texto de puntaje cuando destruye un objetivo
  • Hay explosiones de partículas cuando el jugador obtiene un objeto

Nuevos conceptos y habilidades:

  • TextMeshPro
  • Canvas
  • Anchor Points
  • Importar bibliotecas
  • Métodos personalizados con parámetros
  • Llamada de métodos de otros scripts

Siguiente lección:

  • Usaremos algunos elementos de la interfaz de usuario nuevamente. Esta vez para indicarle al jugador que el juego terminó y debe reiniciarlo.

Complete this tutorial