Пример #1
0
 void Update()
 {
     if (matchedClientFlag && matchedHostFlag)
     {
         count++;
         gameSignalingHost.SendData(new ClientReceiveSignalData(
                                        new CommandData(1, CommandKind.Move, count, new object[] { Direction.Down, 5 }),
                                        MatchType.Client
                                        )
                                    );
         gameSignalingClient.SendData(new HostReceiveSignalData(
                                          new CommandData(1, CommandKind.Move, count, new object[] { Direction.Up, 1 }))
                                      );
         gameSignalingClient.SendData(new HostReceiveSignalData(
                                          new CommandData(1, CommandKind.Move, count, new object[] { Direction.Up, 1 }))
                                      );
         gameSignalingHost.SendData(new ClientReceiveSignalData(
                                        new CommandData(1, CommandKind.Move, count, new object[] { Direction.Down, 5 }),
                                        MatchType.Client
                                        )
                                    );
         gameSignalingClient.Update();
         gameSignalingHost.Update();
     }
     else
     {
         matchingServer1.Update();
         matchingServer2.Update();
     }
 }
 void SendCommandData(CommandData commandData)
 {
     gameSignalingHost.SendData(new ClientReceiveSignalData(
                                    commandData,
                                    MatchType.Host
                                    ));
 }
        public RemoteClientBotController(BotEntity botEntityPrefab, TileMapInfo tileMapInfo, BulletEntity bulletPrefab,
                                         SoundManager soundManager, GameSignalingHost gameSignalingHost,
                                         MeleeAttackEntity meleeAttackEntity, EventSystemWatcher eventSystemWatcher)
        {
            var botEntity = Object.Instantiate(botEntityPrefab);

            tileMapInfo.EnemyTankTransform = botEntity.transform;
            botEntity.gameObject.layer     = LayerMask.NameToLayer("EnemyBot");
            botEntity.transform.position   = tileMapInfo.GetPlayer2StartPosition();
            var botEntityAnimation = botEntity.GetComponent <BotEntityAnimation>();
            MeleeAttackApplication meleeAttackApplication = new MeleeAttackApplication(meleeAttackEntity, soundManager);
            var gun = new Gun(
                soundManager,
                new BulletEntityCreator(bulletPrefab, LayerMask.NameToLayer("EnemyBullet")),
                true
                );

            botApplication = new BotApplication.BotApplication(
                botEntity, botEntityAnimation, tileMapInfo, eventSystemWatcher, gun,
                meleeAttackApplication
                );

            gameSignalingHost.ReceivedHostReceiveSignalData += data =>
            {
                new BotCommandsTransformerService().FromCommandData(data.clientCommandData, botApplication);
                gameSignalingHost.SendData(new ClientReceiveSignalData(data.clientCommandData, MatchType.Client));
            };
        }