Cómo saber si un GameObject está ACTIVO en la escena

Introducción

En este artícu­lo vamos a ver cómo hac­er para cono­cer el esta­do de un GameOb­ject cualquiera a través de códi­go. Los GameOb­jects son los ele­men­tos de la esce­na que se uti­lizan para mod­e­lar todo cuan­to exista en nue­stro proyec­to en Uni­ty. Una de las propiedades bási­cas que tienen estos GameOb­jects es su esta­do de acti­vación, en la ven­tana inspec­tor puede verse como una casil­la que al estar mar­ca­da el GameOb­ject se encuen­tra ACTIVO y si la casil­la está des­mar­ca­da el GameOb­ject se encuen­tra INACTIVO.

Tengo el vídeo perfecto para esta ocasión

Vemos cómo saber si un GameOb­ject está ACTIVO o INACTIVO en la esce­na en Uni­ty a través de código


Procedimiento para saber si un GameObject está ACTIVO o INACTIVO en la escena

Vamos a asumir que ya existe un script crea­do y asig­na­do a un GameOb­ject en Uni­ty para que sus instruc­ciones puedan ejecutarse.

Paso 1 — Definir REFERENCIA

Para resolver prac­ti­ca­mente cualquier prob­le­ma en Uni­ty ten­emos que par­tir por las vari­ables que vamos a uti­lizar, en este caso nece­si­ta­mos con­tar con la ref­er­en­cia del GameOb­ject que quer­e­mos analizar, en otras pal­abras, en nue­stro script definire­mos una vari­able glob­al de tipo GameOb­ject, por ejem­p­lo de la sigu­iente manera:

pub­lic GameOb­ject myGameObject

Paso 2 — Inicializar REFERENCIA

La vari­able que defin­i­mos en el paso ante­ri­or no va a apun­tar automáti­ca­mente al GameOb­ject que nos intere­sa cono­cer si está ACTIVO o INACTIVO en la esce­na, ten­emos que ocu­parnos de que eso pase.

Exis­ten diver­sas for­mas de ini­cializar una vari­able, haz clic aquí para ver una lista de repro­duc­ción con más de 20 vídeos donde se ven méto­dos y ejem­p­los sobre este tema, en este caso vamos a ir al inspec­tor donde ten­emos asig­na­do el script y vamos a arras­trar man­ual­mente el GameOb­ject que nos intere­sa analizar a la vari­able tipo GameOb­ject que aparece en el inspec­tor, en nue­stro caso llamada"myGameObject". De esta man­era aho­ra esa vari­able apun­tará al GameOb­ject que nos interesa.

Paso 3 — Cómo LEER el estado del GameObject

Una vez resuel­to los dos pasos pre­vios aho­ra podemos uti­lizar la vari­able que defin­i­mos para saber si el GameOb­ject se encuen­tra ACTIVO o INACTIVO en la esce­na. Para esto usamos la sigu­iente instrucción.

myGameObject.activeInHierarchy

La instruc­ción ante­ri­or es equiv­a­lente a un val­or booleano, si el GameOb­ject al que está apun­tan­do la vari­able "myGameOb­ject" está acti­vo en la esce­na la expre­sión dará como resul­ta­do "true", mien­tras que si está inac­ti­vo dará como resul­ta­do "false". Por lo tan­to podemos usar esta expre­sión para hac­er lo que quer­amos, por ejem­p­lo definir una sen­ten­cia IF e imprim­ir un men­saje en con­so­la si el obje­to está acti­vo y un men­saje dis­tin­to si está inac­ti­vo, por ejemplo:

if(myGameObject.activeInHierarchy){
Debug.Log("El GameOb­ject está ACTIVO");
}else{
Debug.Log("El GameOb­ject está INACTIVO");
}

Scroll al inicio
Secured By miniOrange