Jump to content
MatiasBoyer

Error al spawnear objetos en UNET

Recommended Posts

Hola a todos,

Tengo este error a spawnear objetos en unet usando NetworkServer.SpawnObjects(); , los objetos se spawnean del lado HOST pero en el CLIENTE no aparece nada, solo aparece el siguiente error:

Spawn scene object not found for 1

Alguien que sepa como solucionarlo porfavor?

Gracias.

Share this post


Link to post
Share on other sites

El networkserver.SpawnObject hace eso, te crea el objeto en el host y si ejecutas esa línea en un cliente te tira error, para crearlo en el cliente prueba con la función NetworkServer.Spawn, llamada siempre desde el host.

Share this post


Link to post
Share on other sites

@leocub58  @juanma_teso

Intenté de las 2 maneras pero me pasa lo mismo, solo que me dice esto desde EL CLIENTE:

Cita

Spawn scene object not found for 1
UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

Y este es el código:

        if (SceneManager.GetActiveScene().buildIndex != )
        {
            sObj = true;
        }

        if (sObj && isServer && JUGADOR_CLIENTE != null)
        {
            NetworkServer.SpawnObjects();
            GameObject[] OBJ = GameObject.FindGameObjectsWithTag("sceneObj");
            for (int i = ; i < OBJ.Length; i++)
            {
                //NetworkServer.Spawn(OBJ[i]);
                NetworkServer.SpawnWithClientAuthority(OBJ[i], JUGADOR_CLIENTE);
            }
            sObj = false;
        }

        if(isServer)
        {
            JUGADOR_CLIENTE = GameObject.Find("JUGADOR_Cliente");
        }

 

Share this post


Link to post
Share on other sites

El spawn with client authority es solo cuando no es el server, es cuando es el cliente. A demás, los spawns tienes que hacerlo dentor de un comando. Esto se crea así:

 

using UnityEngine.Networking;
//importa networking y cambia de monobehavoir a NetworkBehavoir.
/////////////////////////////////

[Command]
void CmdSpawn () {
 //Aqui el codigo de spawn, si es servidor usa NetworkServer.Spawn(obj);
  //si es cliente usa NetworkServer.SpawnWithClientAuthority(Obj);
}

 

Share this post


Link to post
Share on other sites

Voy a buscar un poco por los foros de Unity, no sé que pueda ser, todos los objetos con ese tag tienen NetworkIdentity? Si explicas un poco qué intentas lograr nos darías un poco de perspectiva :) Yo probaría primero llamando sólo el NetworkServer.Spawn() dentro del bucle y no al SpawnObjects(), comenta esa línea y nos cuentas.

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...