Пример #1
0
 private void MakeRoomContainer(NeutronRoom room)
 {
     if (Neutron.Server.MatchmakingMode == MatchmakingMode.Room || Neutron.Server.MatchmakingMode == MatchmakingMode.All)
     {
         if (room.Scene == null)
         {
             string containerName = $"Room({room.Id}) - [Container] - {SceneHelper.GetSideTag(IsServer)}";
             //* Cria um container(scene) para a nova sala, somente se não existir um.
             room.Scene = SceneHelper.CreateContainer(containerName, Neutron.Server.LocalPhysicsMode);
             GameObject matchManager = SceneHelper.MakeMatchmakingManager(room.Owner, IsServer, Server);
             SceneHelper.MoveToContainer(matchManager, containerName);
             //* Registra os objetos de cena.
             NeutronSceneObject.OnSceneObjectRegister(room.Owner, IsServer, room.Scene, MatchmakingMode.Room, room, Server);
         }
     }
 }
Пример #2
0
 private void MakeContainerOnChannels()
 {
     foreach (var channel in Neutron.Server.ChannelsById.Values)
     {
         MakeProperties(channel);
         MakeVirtualOwner(channel, channel, null);
         if (Neutron.Server.MatchmakingMode == MatchmakingMode.Channel || Neutron.Server.MatchmakingMode == MatchmakingMode.All)
         {
             string containerName = $"Channel({channel.Id}) - [Container] - {SceneHelper.GetSideTag(IsServer)}";
             //* Cria um container(scene) para a nova sala, somente se não existir um.
             channel.Scene = SceneHelper.CreateContainer(containerName, Neutron.Server.LocalPhysicsMode);
             GameObject matchManager = SceneHelper.MakeMatchmakingManager(channel.Owner, true, Neutron.Server.Instance);
             SceneHelper.MoveToContainer(matchManager, containerName);
             //* Registra os objetos de cena.
             NeutronSceneObject.OnSceneObjectRegister(channel.Owner, IsServer, channel.Scene, MatchmakingMode.Channel, channel, Server);
         }
         MakeContainerOnRooms(channel);
     }
 }