El personaje y el controlador

1

Introducción: De la idea al desarrollo

2

Estructura de carpetas en Unity

3

Assets, Game Objects y Sprite Atlas

4

Animaciones desde un sprite map

5

Animation Controller y Transiciones

6

Plataformas y gravedad

7

Física en Unity

8

El script de control

9

Programando funciones en C# y Unity: Jump

10

Detectar el suelo con Raycast

11

Herramientas de debugging visual

12

Cambiar las animaciones según los estados

13

Reto: Terminando nuestras animaciones

14

Solución del reto

15

Hacer que el personaje camine

El manager del videojuego

16

Cómo funciona el Game Manager

17

El Singleton

18

El modo de juego

19

Input manager y juegos multiplataforma

20

Corrección del Bug del salto

21

La zona de muerte

22

Reiniciar la partida

23

Corrigiendo los bugs al reiniciar nuestro juego

Diseño procedural de niveles 2D

24

El diseño de niveles a mano

25

Configurando nuestros assets para el diseño procedural

26

Generación procedural de niveles

27

Creando la zona que eliminará bloques del nivel excedentes

28

Añadir un nuevo bloque de forma aleatoria

29

La cámara que sigue al jugador

30

Destrucción de bloques antiguos

31

Terminando de programar la destrucción de bloques antiguos

32

Solucionando el salto de la cámara al reiniciar el juego

HUD, menús y gameplay

33

El canvas en Unity

34

Uso de botones para crear un menú

35

La lógica de los menús

36

Ejercicio: Preparando el menú del juego

37

Programando el menú del juego

38

Los coleccionables del juego

39

Actualizar UI de coleccionables

40

Iniciando con pociones y maná

41

Pociones de vida y maná

42

Programando las barras de vida y maná

43

Calculando los puntajes con la distancia y el tiempo de juego

44

La lógica del maná

Enemigos y dificultad

45

Plataformas móviles

46

Iniciar movimiento de la plataforma con trigger

47

Enemigos móviles

48

Enemigos móviles: preparando nuestro enemigo para girar

49

Enemigos móviles: programando que fire al chocar

50

Arreglando el collider de nuestra roca

51

Programando la condición de muerte del personaje

52

Añadiendo música de fondo a nuestro videojuego

53

Añadiendo efectos de sonido y cierre del curso

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

Programando el menú del juego

37/53
Recursos

En esta clase vamos a programar el canvas con los puntajes del personaje, en vez de siempre mostrar los mismos números (placeholders) vamos controlar la información desde un nuevo script que llamamos GameView.

Recuerda que toda la información la mostramos en forma de texto, pero, para guardar estas variables en nuestro script necesitamos importar los paquetes de la interfaz gráfica de Unity (UnityEngine.UI) ya que no los importamos por defecto.

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Int es para guardar numero enteros 1,2,3,4,5
y float guarda números con decimales 1.1,1.2,1.3,1.4,1.5, y con la variable float vamos a guardar cada mm que camine el personaje , para tener un contador mas exacto

Pienso yo que la variable int y la variable float tienen difetente capacidad de memoria por lo tanto el entero que es para los coins que se va a recolectar en ese nivel que no van a ser mas de ''200'' eso es un ejemplo mientras que el Score van a ser mas, porque es la suma de todos los coins que has recogido en los niveles y necesitas una memoria mas grande para guardar los coins. creo que es eso.

Un dato tipo Int es una cantidad precisa y/o esacta 1,20, 100.
Mientras que un dato tipo float es flotatante lo que significa que es irregular en su resultado 1,30. 20,458. 100,2934.

Si no vamos a la logica, las monedas nunca seran decimales, en la logica del juego no puedo tomar la mitad de una moneda.

Si por el otro lado voy a contar cuantos metros recorro como en el juego del dinosaurio de google, entonces necesitare contar medios metros

la interpolación de los scores se puede simplificar así:

            scoreText.text = $"score {score:f1}";
            maxScoreText.text = $"max. score {maxScore:f1}";

Para los que estéis usando TextMeshPro en lugar de Text tenéis que importar TMPro y usar TextMeshProGUI como tipo de dato en lugar de Text.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class GameView : MonoBehaviour
{

    public TextMeshProUGUI coinText, scoreText, maxScoreText;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(GameManager.sharedInstance.currentGameState == GameState.IN_GAME)
        {
            int coins = 0;
            float score = 0;
            float maxScore = 0;

            coinText.text = coins.ToString();
            scoreText.text = "Score " + score.ToString("f1");
            maxScoreText.text = "Max Score " + maxScore.ToString("f1");

        }
    }
}

Ya sabemos la diferencia entre Int y Float

El Score equivale a la distancia recorrida por el usuario en una partida, por lo tanto, para una referencia más exacta, se debe usar decimales

Mientras que las monedas son números enteros y no necesitan de decimales para exactitud

A pesar de que int nos permite trabajar con números muy grandes, existe una limitación, que si trabajamos con números más nos vale conocer para tener en cuenta.

Los valores de un tipo de dato int son:

-2,147,483,648 a 2,147,483,647

En el caso que queramos trabajar con números aún más grandes, existe el tipo “long”:

-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807

Link de referencia

Score ![](

Es por que una variable int puede guardar solo datos enteros mientas que un float puede guardar muchos decimales

Se debe guardar algunos datos en variables enteras cuando no hay posibilidad de que sean decimales

Hola si dan doble clic en la pantalla de el video y denle en la opción de, imagen con imagen incrustada