No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Instanciando las piezas en la cuadrícula

11/34
Recursos

¿Cómo crear y configurar componentes en Unity?

Al sumergirnos en el mundo de la programación en Unity, uno de los pasos fundamentales es aprender a crear y configurar componentes que den vida a nuestros proyectos. En esta guía, te mostraré cómo crear un componente simple para piezas de un juego, integrarlo en la cuadrícula del tablero, y gestionar variaciones de prefabs de manera sencilla. ¡Vamos allá!

¿Cómo crear un nuevo script en Unity?

Para comenzar el desarrollo de tu componente, necesitarás crear y editar un script en C# que represente las piezas del juego:

  1. Dirígete a la carpeta de "Scripts" en tu proyecto Unity.
  2. Haz clic derecho, selecciona "Create", luego "C# Script".
  3. Nombralo "Piece".
  4. Abre el script en Visual Studio o tu editor de preferencia.

¿Qué propiedades debe tener un componente de pieza?

En el script "Piece", define las propiedades esenciales que tendrá cada pieza, como la posición en el tablero y el tipo de pieza:

  • public int X, Y: Almacenan la posición en la cuadrícula.
  • public Board board: Referencia a la cuadrícula en la que estarán las piezas.
  • public enum Type: Enumera los diferentes tipos de piezas (elefante, jirafa, etc).

Aquí un ejemplo del enum en C#:

public enum Type
{
    Elephant,
    Giraffe,
    Hippopotamus,
    Monkey,
    Panda,
    Parrot,
    Penguin,
    Pig,
    Rabbit,
    Snake
}

¿Cómo se configura una función de setup?

Se requiere una función para inicializar los valores y configurar las piezas cuando se crean:

public void Setup(int x, int y, Board board)
{
    this.X = x;
    this.Y = y;
    this.board = board;
}

¿Cómo crear prefabs y variantes de piezas?

Después de configurar las propiedades del script, el siguiente paso es crear los prefabs para las piezas:

  1. En Unity, selecciona un sprite (ejemplo: elefante) y arrástralo al escenario.
  2. Añade el componente "Piece" clicando en "Add Component".
  3. Establece el tipo de pieza, ej. "Elephant".

Para crear variantes, sigue estos pasos:

  1. Duplica el prefab del elefante (Ctrl-D o Cmd-D).
  2. Cambia el nombre al nuevo prefab, por ejemplo a "Giraffe".
  3. Modifica el "Sprite Renderer" para usar el nuevo sprite y cambia el tipo de pieza.

Repite este proceso para cada sprite/pieza que tengas.

¿Cómo integrar piezas en el tablero desde la clase Board?

En la clase Board, es necesario actualizar el tablero para que coloque estas piezas en la cuadrícula:

  1. Define un array de objetos:

    public GameObject[] availablePieces;
    
  2. Implementa el método SetupPieces() para llenar la cuadrícula:

    • Para cada posición en la cuadrícula, selecciona una pieza aleatoria del array y colócala.
    • Usa UnityEngine.Random.Range() para asegurar selección aleatoria:
    var selectedPiece = availablePieces[UnityEngine.Random.Range(0, availablePieces.Length)];
    

¿Solución a problemas de visibilidad de sprites?

Si tus piezas no son visibles, puede ser un problema de orden de renderizado de sprites. Para solucionarlo:

  1. Ajusta el orden en el Sprite Renderer del prefab en el panel de Unity:
    • Cambia el orderingLayer a un valor mayor que el de los tiles, por ejemplo 5.

Al gestionar adecuadamente el orden de renderizado, te aseguras de que los sprites de las piezas se muestren correctamente sobre la cuadrícula.

Al seguir estos pasos, no solo crearás un sistema funcional para tus piezas de juego, sino que también habrás desarrollado una base sólida para continuar expandiendo las funcionalidades de tu juego en Unity. ¡Adelante, sigue explorando y mejorando tu proyecto!

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

No cabe duda que todos los días se aprende algo nuevo, no tenía idea del uso de los override para modificar variantes de prefabs, fascinante!

Me está gustando mucho el curso, por ahora no estoy teniendo problemas, había usado Unity anteriormente hace tiempo pero lo dejé, ahora quiero retomarlo aunque estoy algo preocupado por la última liada de Unity con las nuevas cuotas.
Por cierto, gran profesor!

Excelente clase profe!
profe me pasa algo me pide que dentro del ´´´GameObject \[]´´´ me pide un valor en los corchetes \[] que puedo poner adentro de esos corchetes![](https://static.platzi.com/media/user_upload/image-19ac4c57-015b-45e0-a1f0-ebade31e0176.jpg)![]()![](https://static.platzi.com/media/user_upload/image-b9a6f95a-8472-4194-b15e-3ecea831b861.jpg)