Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

recorrer todos los componentes de un objeto

Iniciado por ecko, Diciembre 20, 2016, 11:36:43 AM

Tema anterior - Siguiente tema
Buenas, estoy intentando recorrer todos los componentes que contiene un objeto para así poder eliminar o conservar componentes deseados, me podrían decir cual es el método que me devuelve todos los componentes de un objeto?, gracias.


Hice lo siguiente pero no tengo manera de ignorar que elimine el componente de tipo Transform o cualquier otro tipo que desee:
 
 
 
for (var Comp in GameObject.Find("nombObjeto").GetComponents(Component)){

        if(Comp != Transform ){

            Destroy(Comp);

        }

    }

El componente Transform es implícito en TODOS los GameObjects. Vas a tener que buscar una forma de de filtrar ese array o copiarlo a otro, descartando el Transform...

Tenes que entrar en modo DEbug ;) , crea simplemente una lista o arreglos de Component, recorre cada uno y chequea si es determinado componente, imprimi el nombre del o de los componente/s , creo que con GetType().name lo podes hacer y fijate que es lo que haces mal. El for ese no deberia ser foreach?

Utiliza typeof de C#:
 

       foreach(Component component in this.GetComponents<Component>())
        {
            if(component.GetType()!= typeof(Transform))
                Debug.Log(component.GetType().ToString());
        }

 
 

Etiquetas: