Noticias

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

Asignar Layer Automáticamente A los Enemigos

Iniciado por Alex, Agosto 31, 2018, 05:29:01 PM

Tema anterior - Siguiente tema
buenas!
 
alguien sabe como puedo poner al entrar a una escena, los layers de los demás jugadores a Enemigo y yo a "Héroe"?
 
básicamente como es un multijugador todos tienen el layer de Player al comienzo, luego hay un sorteo en el cual elije a los enemigos y un solo héroe, quiero que los enemigos al dispararse no les afecte las balas pero sí al Héroe, mi problema va cuando se hace el sorteo, al elegir a los dos grupos, quiero que cambien su tag o layer a los correspondientes: (sortedo de 3 jugadores con layer "Player", gana uno y pasa a ser layer "héroe" y el resto a "enemigos") algo así.
 
alguien puede ayudarme?

Si estás trabajando con el Networking de Unity basta con que cambies en el servidor los tag y layer, prueba con un script solo en el servidor (server only en el inspector del NetworkIdentity) en este script registra los players al iniciar la escena (start por ejemplo pero siempre en el lado del servidor), después (puedes usar invoke para esperar un segundo a que todos los clientes se hayan registrado) llama la función donde haces el sorteo y en la misma función cambia los tags y los layer.

@juanma_teso Entiendo,  pero no uso  los servers de unity, quiero comenzar por lo básico como modo campaña con bots, y luego pasarlo a multijugador, las funciones son las mismas pero necesito saber como se hace lo del layer.

Cita de: Alex date=1535768645@juanma_teso Entiendo,  pero no uso  los servers de unity, quiero comenzar por lo básico como modo campaña con bots, y luego pasarlo a multijugador, las funciones son las mismas pero necesito saber como se hace lo del layer.
   


Para cambiar el layer solo tienes que referenciar el gameobject y llamar a su componente Layer
 

gameObject.layer = 2;

 
Te dejo por aquí un enlace a la documentación
 
https://docs.unity3d.com/ScriptReference/GameObject-layer.html

Cita de: Obscure Tales date=1535875062Para cambiar el layer solo tienes que referenciar el gameobject y llamar a su componente Layer
   
   

gameObject.layer = 2;

   
      Te dejo por aquí un enlace a la documentación
   
   
      https://docs.unity3d.com/ScriptReference/GameObject-layer.html
   


La asignación tiene que ser recursiva, creo que Unity ya tiene un función que lo hace.

Gracias por el aporte,  ya lo había solucionado, de todas maneras es igual a lo que dicen.

Etiquetas: