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); } } }
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); } }