Jump to content
UnitySpain
Alex

Asignar Layer Automáticamente A los Enemigos

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

@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.

Share this post


Link to post
Share on other sites
On 9/1/2018 at 4:24 AM, Alex said:

@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

Share this post


Link to post
Share on other sites
2 hours ago, Obscure Tales said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

×
×
  • Create New...