¿Qué es un GameObject en Unity?

Introducción

Des­de el pun­to de vista de la pro­gra­mación, un GameOb­ject en Uni­ty es una clase de pro­gra­mación, sin embar­go el con­cep­to va mas allá de eso, en Uni­ty un GameOb­ject es la unidad bási­ca para con­stru­ir cualquier cosa que se nece­site en una esce­na, cada GameOb­ject perteneciente a una esce­na se encuen­tra lis­ta­do en la jer­ar­quía de Uni­ty. En este artícu­lo encon­trarás infor­ma­ción detal­la­da sobre sus car­ac­terís­ti­cas y fun­ciones, antes de avan­zar dejo un vídeo con un análi­sis com­ple­to sobre el con­cep­to de GameObject.

Análisis completo sobre GameObjects en Unity
🔴

MIRA ESTE DESCABELLADO EXPERIMENTO

Características básicas de un GameObject

Vamos a ver cuáles son las car­ac­terís­ti­cas y com­po­nentes bási­cos de un Emp­ty GameOb­ject que es el más gen­er­al que podemos agre­gar en una esce­na de Unity.

Con­sid­er­e­mos que ten­emos un Emp­ty GameOb­ject en la esce­na lla­ma­do "Objeto1", con este GameOb­ject vamos a ejem­pli­ficar la man­era de acced­er a sus componentes.

Componente Transform

Los GameOb­jects como mín­i­mo ten­drán un com­po­nente Trans­form que indi­cará su posi­ción, rotación y escala en la escena. 

Podemos acced­er a la ref­er­en­cia de su com­po­nente Trans­form uti­lizan­do el oper­ador pun­to de la sigu­iente manera:

objeto1.transform

Si quisiéramos acced­er al Vector3 que rep­re­sen­ta la posi­ción del GameOb­ject en la esce­na nue­va­mente usamos el oper­ador pun­to de la sigu­iente manera:

objeto1.transform.position

Si quisiéramos acced­er al float que rep­re­sen­ta la com­po­nente y de la posi­ción del obje­to en la esce­na podemos hac­er lo siguiente:

objeto1.transform.position.y

Lo mis­mo se apli­ca para los demás miem­bros del com­po­nente Transform 

objeto1.transform.rotation

objeto1.transform.scale

Tags o Etiquetas

Un GameOb­ject tiene un Tag asig­na­do que per­mite dis­tin­guir­lo de otros GameOb­jects de la esce­na, lis­tar­lo uti­lizan­do ese Tag o realizar algu­na fun­ción si el obje­to tiene asig­na­do un deter­mi­na­do Tag.

Layers o Capas

Las Lay­ers se asig­nan a los GameOb­jects y del mis­mo modo que los Tags nos per­miten lis­tar­los y realizar acciones si el GameOb­ject pertenece a deter­mi­na­da layer. 

Una apli­cación más intere­sante de las Lay­ers es en el ren­der­iza­do de los GameOb­jects. Podemos con­fig­u­rar varias cámaras en la esce­na y hac­er que cada cámara capte una o más Lay­ers en particular.

Método GetComponent

Este méto­do per­mite obten­er la ref­er­en­cia de un com­po­nente de algún tipo especí­fi­co que esté asig­na­do al GameOb­ject. Para saber qué es un méto­do en pro­gra­mación puedes hac­er clic aquí.

Supong­amos que nue­stro obje­to se lla­ma "objeto1" tiene asig­na­do un com­po­nente tipo AudioSource porque emite algún tipo de sonido y nos gus­taría acced­er a ese com­po­nente y tal vez mod­i­ficar el vol­u­men. Podemos usar este méto­do de la sigu­iente manera:

objeto1.GetComponent<AudioSource>();

Esto nos dá la ref­er­en­cia del AudioSource que ten­ga asig­na­do. En el caso de que el GameOb­ject ten­ga más de un com­po­nente de ese tipo, podemos hac­er lo siguiente:

objeto1.GetComponents<AudioSource>();

Esto devuelve un Array que con­tiene todos los com­po­nentes de ese tipo que el obje­to ten­ga asignado.

Método SetActive

Este méto­do per­mite acti­var o desac­ti­var el GameOb­ject en la jer­ar­quía, el resul­ta­do es equiv­a­lente a mar­car o des­mar­car el tilde que se encuen­tra en la parte supe­ri­or del inspec­tor cuan­do el obje­to está seleccionado.

Para acti­var­lo hacemos:

objeto1.SetActive(true);

Para desac­ti­var­lo:

objeto1.SetActive(false);

Flexibilidad para construir GameObjects complejos

Hemos men­ciona­do que el Emp­ty GameOb­ject es el tipo de obje­to más sim­ple que podemos encon­trar en una esce­na en Unity. 

Podemos per­son­alizar estos obje­tos tan­to como nece­site­mos, añadirles com­po­nentes pre­ex­is­tentes en el motor Uni­ty o nue­stros pro­pios Scripts de pro­gra­mación. Esto hará que cada GameOb­ject ten­ga un com­por­tamien­to especializado.

Conclusión

Hemos vis­to qué es un GameOb­ject en Uni­ty, cuáles son sus com­po­nentes prin­ci­pales y la posi­bil­i­dad de agre­gar tan­tas com­po­nentes como sean nece­sarias para con­stru­ir los obje­tos que nece­site­mos en nue­stro mundo.

El obje­to más sim­ple que pue­da haber en una esce­na ten­drá asig­na­do un com­po­nente Trans­form que indi­cia­rá su posi­ción, rotación y escala en la esce­na. Ten­drá asig­na­dos un Tag y un Lay­er que per­miten agru­par obje­tos y realizar fun­ciones apropi­adas para cada grupo.

En el ámbito de la pro­gra­mación GameOb­ject es una clase de pro­gra­mación, que cuen­ta con cam­pos y méto­dos que lo definen. Se puede con­sul­tar el lis­ta­do de todos sus miem­bros en la API de Uni­ty.

YouTube
Scroll al inicio
Secured By miniOrange