logo

Comprensión de los prefabricados y la creación de instancias

Crear instancias y destruir personajes u objetos es muy común en cualquier juego. Instanciar significa dar existencia al objeto. Los objetos aparecen, aparecen o se generan en un juego, los enemigos mueren, los elementos de la GUI desaparecen y las escenas se cargan todo el tiempo en el juego.

Los prefabricados son muy útiles cuando desea crear instancias de GameObjects complicados o una colección de GameObjects en tiempo de ejecución. En comparación con la creación de GameObjects desde cero usando código, crear instancias de casas prefabricadas usando código es mejor y tiene muchas ventajas.

Entendamos qué son las casas prefabricadas; ya que las casas prefabricadas se consideran importantes para comprender cómo funciona la creación de instancias en Unity.

Prefabricados Son como planos de un GameObject. Entonces podemos decir que los prefabricados son una copia de un GameObject que se puede duplicar y poner en una escena, incluso si no existía cuando se estaba creando la escena; en otras palabras, las casas prefabricadas se pueden utilizar para generar GameObjects dinámicamente.

Creemos una casa prefabricada; para esto, debe arrastrar el GameObject deseado desde la jerarquía de su escena a los Activos del proyecto.

Comprensión de los prefabricados y la creación de instancias

Ahora, para crear una instancia de un GameObject, llamamos al método Instantiate() en nuestro script. Este método está disponible en MonoBehaviour, toma un GameObject como parámetro, por lo que sabe qué GameObject crear o duplicar. También tiene diferentes anulaciones para cambiar la transformación del objeto recién creado, así como la crianza.

Ahora cree un nuevo script llamado Instantiator.cs y copie el siguiente código en él.

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } } 

En el programa anterior, usamos el método GetKeyDown de la clase Input para verificar si el jugador presionó un botón específico durante el último cuadro. El método GetKeyDown() devuelve verdadero si la tecla especificada por la enumeración KeyCode (que se utiliza para enumerar todas las teclas posibles en un teclado estándar) se presiona en ese marco.

Guarde el guión. Y ahora, cree un GameObject vacío haciendo clic derecho en la escena desde la pestaña Jerarquía.

Comprensión de los prefabricados y la creación de instancias

Adjunte ese archivo de secuencia de comandos (Instantiator.cs) al componente del GameObject recién creado desde la pestaña Inspector.

Ahora, en la variable Diamante, arrastre la casa prefabricada que hemos creado.

Comprensión de los prefabricados y la creación de instancias

Cuando ejecutes el juego ahora, al presionar la barra espaciadora se creará un nuevo objeto Diamante idéntico al que usamos para crear la casa prefabricada. Puede ver que cada diamante se crea en la jerarquía de objetos. La razón por la que no puedes verlos aparecer en el juego es que, por el momento, todos se crean exactamente uno sobre el otro. Pero puedes verificarlo desde la pestaña Jerarquía. Cada vez que presiones una barra espaciadora, se mostrará en la pestaña como un Diamante (clon).

Comprensión de los prefabricados y la creación de instancias