Curso de Desarrollo de Videojuegos para Móviles con Unity

Clases del Curso de Desarrollo de Videojuegos para Móviles con Unity

Instruido por:
Juan Gabriel Gomila
Juan Gabriel Gomila
Básico
4 horas de contenido
Ver la ruta de aprendizaje
Platzi Beach Breker
Proyecto del curso
Platzi Beach Breker

Programa un juego móvil con la mecánica de 3 en línea optimizado para móviles, crea la lógica para combos, configura un proyecto para móviles y aprende a exportar tus videojuegos para Android y para iOS utilizando Unity todo esto mientras creas un divertido juego de Puzzles para teléfonos móviles.

Curso de Desarrollo de Videojuegos para Móviles con Unity

Curso de Desarrollo de Videojuegos para Móviles con Unity

Progreso del curso:0/31contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/31contenidos(0%)

La estructura de un juego para móvil

Material Thumbnail

Qué aprenderás sobre el desarrollo de videojuegos para móviles

02:09 min

Material Thumbnail

Presentación y Game Design de nuestro proyecto

02:42 min

IMPORTANTE: Archivos del curso

00:06 min

Material Thumbnail

Estructura de carpetas y assets en Unity

08:01 min

Sprite Atlas y Generación de Caramelos

Material Thumbnail

Sprite Atlas: El fondo del escenario

11:53 min

Material Thumbnail

Sprite Atlas: Los dulces

12:06 min

Material Thumbnail

El script de los dulces

10:57 min

Material Thumbnail

El Manager del tablero o Grid Manager

10:09 min

Material Thumbnail

Inicialización del tablero

10:27 min

Material Thumbnail

Ejercicio: cortar caramelos

05:22 min

Material Thumbnail

Configurar el manager de dulces

08:22 min

Material Thumbnail

Añadir caramelos de forma aleatoria

07:18 min

Diseño de Game Play

Material Thumbnail

Verificar y evitar caramelos repetidos

12:33 min

Material Thumbnail

Selección de los caramelos

12:14 min

Material Thumbnail

Swapping de Caramelos

10:17 min

Material Thumbnail

Caramelos vecinos

13:30 min

Material Thumbnail

Comprobar 3 en raya

12:06 min

Material Thumbnail

Detectar coincidencias y destruir caramelos

15:26 min

Material Thumbnail

Bajar caramelos en cascada cuando un grupo es eliminado

13:23 min

Material Thumbnail

Generar caramelos aleatorios para completar los espacios vacíos

09:09 min

Material Thumbnail

Eliminar los grupos de caramelos similares que se generan al completar los espacios vacíos (combos)

10:55 min

Retos finales

Material Thumbnail

Trabajando la interfaz de nuestro videojuego

11:20 min

Material Thumbnail

Contar los movimientos restantes y la puntuación

07:31 min

Material Thumbnail

Implementando puntuación en nuestro juego

08:13 min

Material Thumbnail

Reto: Pantalla de Game Over

06:55 min

Material Thumbnail

Reto: Nuevos niveles de dificultad

04:46 min

Material Thumbnail

Reto: Audio de los caramelos

01:47 min

Material Thumbnail

Reto: Movimiento de los Caramelos con Animaciones

02:00 min

Material Thumbnail

Reto: Menú Principal

03:28 min

Cierre del curso

Material Thumbnail

Preparando nuestro juego para exportarlo

16:26 min

Material Thumbnail

Probando nuestro juego en dispositivos móviles y Conclusiones

05:45 min

nuevosmás votadossin responder
Leonardo Gutierrez
Leonardo Gutierrez
Estudiante
Screenshot 2021-06-29 120357.png

A alguien mas le sale este problema al querer arrastrar el script

2
Cristian David Arroyo Noreña
Cristian David Arroyo Noreña
Estudiante

Buenas tardes, tengo una pregunta, estoy desarrollando un videojuego en 3D sobre cómo cambiar una llanta, entonces la idea es tomar los objetos como el gato, la cruceta el repuesto, conos etc…el juego puntúa según el orden en que utilizas los elementos ya que para el cambio de una llanta pues por ejemplo primero debes usar el equipo de protección como el chaleco, en fin… El puntaje es generado con una variable pública estática que está llamada en el update, de esta manera va recogiendo las sumas y restas de puntaje a lo largo del juego, finalmente al acabar se muestra el puntaje obtenido, mediante un botón se le pide al jugador introducir su nombre.

En el juego estoy usando bases de datos SQLite donde guarde posición, nombre y puntos, entonces esta información está siendo capturada por una clase con esos 3 valores y en resumen…cuando la persona acepta el nombre este queda guardado en la variable de nombre para mostrarlo en el ranking, lo mismo con los puntos (el puesto no, ya que es autoincrement), y pues realmente ya logré hacer que funcionara en unity todo funciona perfecto, pero cuando exporto al celular…se traba cuando quiero mostrar el ranking, ya revise las conexiones a la base de datos dentro del código, también solucioné problemas de rendimiento pero simplemente el juego se traba cuando pongo el nombre y le doy aceptar para que muestre la tabla de ranking.

1
juliocesarperez
juliocesarperez
Estudiante

Le tengo que poner 2D o Mobile 2D?

1
Luca Cristian Manea
Luca Cristian Manea
Estudiante

tengo una duda al ejecutar el juego el candy[0][0] cambia de sprite constantemente en pantalla pero en el inspector figura siempre el mismo sprite asignado
alguien tiene alguna idea de a que se debe este bug?

0
stevenm15
stevenm15
Estudiante

Hola, tengo una duda, para hacer este tipo de video jugeos, solo vamos a usar Unity y C#, no va a ser necesario saber android studio(java, kotlin) swift…?es decir no vamos a necesitar saber hacer aplicaciones para celulares? soy nuevo en esto. he programado en C# y C, pero necesito repasar un poco jaja

3
Guillermo Casanova
Guillermo Casanova
Estudiante

Hola, tengo algunas dudas.

  1. En otro tipo de programas es buena práctica que los atributos de una clase sean privados, y se acceda a ellos desde funciones get y set, ¿Aquí no se hace lo mismo? Mi pregunta está más enfocada al tema de buenas prácticas y no tanto a si es posible o no.

  2. ¿En qué ocasiones inicializamos en start, awake, o fuera de cualquier función como el caso isSelected por ejemplo. Tengo entendido que en algunos casos no hay mayor diferencia pero ¿qué opción sería la más “limpia” o más recomendable?

1
mauricio-cayuba-silva
mauricio-cayuba-silva
Estudiante

Cual es el shortcut para duplicar?

1
Efraín Lerma
Efraín Lerma
Estudiante

Pensaba poner un canvas para el game over… Si es recomendable? O porque sugirió crear una escena nueva solo para el game over?

4
neider david manrique baez
neider david manrique baez
Estudiante

buenos días tengo problemas en 2 de las lineas de mi programacion que en este video corresponde a la linea 7 y la 11 las palabras “color” y “spriterenderer” no tienen el color azul (definidas como class) sino negro como si fuera texto normal… estoy trabajando en window 10 y con visual studio 2019

1
Rodrigo Arango
Rodrigo Arango
Estudiante

Estoy teniendo este error:

NullReferenceException: Object reference not set to an instance of an object
BoardManager.CreateInitialBoard (UnityEngine.Vector2 offset) (at Assets/Scripts/BoardManager.cs:67)
BoardManager.Start () (at Assets/Scripts/BoardManager.cs:33)

Mi BaordManager:

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

publicclassBoardManager : MonoBehaviour
{
    publicstatic BoardManager sharedInstance;
    public List<Sprite> prefabs = new List<Sprite>();
    public GameObject currentCandy;
    publicint xSize, ySize;
    private GameObject[,] candies;

    publicbool isShifting {get;set;}


    [SerializeField]
    privatefloat paddingX = 0.4f, paddingY = 0.4f;

    // Start is called before the first frame updatevoidStart()
    {
        if(sharedInstance == null)
        {
            sharedInstance = this;
        }else
        {
            Destroy(this.gameObject);
        }

        Vector2 offset = new Vector2(currentCandy.GetComponent<BoxCollider2D>().size.x + paddingX, 
                         currentCandy.GetComponent<BoxCollider2D>().size.y + paddingY);
        
        CreateInitialBoard(offset);
    }

    privatevoidCreateInitialBoard(Vector2 offset)
    {
        candies = new GameObject[xSize,ySize];

        float startX = this.transform.position.x;
        float startY = this.transform.position.y;

        int idx = -1;



        for(int x = 0; x < xSize; x++)
        {
            for(int y = 0; y < ySize; y++)
            {
                GameObject newCandy = Instantiate(
                currentCandy, 
                new Vector3(startX + (offset.x * x),
                            startY + (offset.y * y), 
                            0),
                currentCandy.transform.rotation);
                newCandy.name = string.Format("Candy[{0}][{1}]", x, y);

                do
                {
                    idx = Random.Range(0, prefabs.Count);
                }while((x>0 && idx == candies[x - 1, y].GetComponent<Candy>().id) || 
                (y < 0 && idx == candies[x, y - 1].GetComponent<Candy>().id));

                Sprite sprite = prefabs[Random.Range(0, prefabs.Count)];
                newCandy.GetComponent<SpriteRenderer>().sprite = sprite;
                newCandy.GetComponent<Candy>().id = idx;


                candies[x,y] = newCandy;
            }
        }
    }

    // Update is called once per framevoidUpdate()
    {
        
    }
}
1