示例#1
0
        private async void Internal_OnPlayerJoinedRoom(NeutronPlayer player, NeutronRoom room)
        {
            await NeutronSchedule.ScheduleTaskAsync(() =>
            {
                MakeRoomContainer(room);
            });

            OnPlayerJoinedRoom(player, room);
        }
示例#2
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);
         }
     }
 }
示例#3
0
 protected virtual void OnPlayerCreatedRoom(NeutronRoom room, NeutronPlayer player, bool isMine, Neutron neutron)
 {
 }
示例#4
0
 private void MakeVirtualOwner(INeutronMatchmaking matchmaking, NeutronChannel channel, NeutronRoom room)
 {
     if (matchmaking.Owner != null)
     {
         LogHelper.Error("Matchmaking already has an owner!");
     }
     else
     {
         //* Não pode aproveitar o Neutron.Server.Player? não, não podemos compartilhar a mesma instância pra vários matchmaking, um jogador só pode está em um Matchmaking ao mesmo tempo.
         NeutronPlayer player = PlayerHelper.MakeTheServerPlayer();
         player.Channel     = channel;
         player.Room        = room;
         player.Matchmaking = MatchmakingHelper.Matchmaking(player);
         matchmaking.Owner  = player; //! reforço: um jogador só pode está em um Matchmaking ao mesmo tempo.
     }
 }
示例#5
0
 protected virtual void OnPlayerJoinedRoom(NeutronPlayer player, NeutronRoom room)
 {
 }
示例#6
0
 protected virtual bool OnPlayerCreatedRoom(NeutronPlayer player, NeutronRoom room)
 {
     return(true);
 }