private static void ProcessFirstEnemiesSyncMessage(FirstEnemiesSyncMessage enemiesSyncMessage) { var serverEnemies = enemiesSyncMessage.Enemies; serverEnemies.ForEach(enemy => { var enemyPrefab = Resources.Load <GameObject>("Prefabs/Hero4"); var enemyInstantiate = Object.Instantiate(enemyPrefab, new Vector3(enemy.X, enemy.Y, 0), Quaternion.identity); enemyInstantiate.name = enemy.Name; }); }
public static void ProcessMessage(string message) { var messageWrapper = JsonConvert.DeserializeObject <MessageWrapper>(message); switch (messageWrapper.MessageType) { case MessageType.PlayerJoin: var playerJoinMessage = JsonConvert.DeserializeObject <PlayerJoinMessage>(messageWrapper.Payload); ProcessPlayerJoinMessage(playerJoinMessage); break; case MessageType.PlayerState: var playerMoveMessage = JsonConvert.DeserializeObject <PlayerStateMessage>(messageWrapper.Payload); ProcessPlayerStateMessage(playerMoveMessage); break; case MessageType.FirstPlayersSync: var serverPlayers = JsonConvert.DeserializeObject <List <ServerPlayer> >(messageWrapper.Payload); var firstPlayersSyncMessage = new FirstPlayersSyncMessage(); firstPlayersSyncMessage.Players = serverPlayers; ProcessFirstPlayersSyncMessage(firstPlayersSyncMessage); break; case MessageType.FirstEnemiesSync: var enemies = JsonConvert.DeserializeObject <List <Enemy> >(messageWrapper.Payload); var firstEnemiesSyncMessage = new FirstEnemiesSyncMessage(); firstEnemiesSyncMessage.Enemies = enemies; ProcessFirstEnemiesSyncMessage(firstEnemiesSyncMessage); break; case MessageType.EnemyState: var enemyStateMessage = JsonConvert.DeserializeObject <EnemyStateMessage>(messageWrapper.Payload); ProcessEnemyStateMessage(enemyStateMessage); break; case MessageType.PlayerWave: //TODO do nothing break; case MessageType.EnemyHitted: var enemyHittedMessage = JsonConvert.DeserializeObject <EnemyHittedMessage>(messageWrapper.Payload); ProcessEnemyHittedMessage(enemyHittedMessage); break; case MessageType.FirstMapSync: var groundBoxesMessage = JsonConvert.DeserializeObject <List <GroundBoxElement> >(messageWrapper.Payload); ProcessFirstMapSyncMessage(groundBoxesMessage); break; case MessageType.MapChanged: var mapChangedMessage = JsonConvert.DeserializeObject <GroundBoxElementDestructMessage>(messageWrapper.Payload); ProcessMapChangedMessage(mapChangedMessage); break; case MessageType.PlayerThrowBomb: var playerThrowBombMessage = JsonConvert.DeserializeObject <PlayerThrowBombMessage>(messageWrapper.Payload); ProcessPlayerThrowBombMessage(playerThrowBombMessage); break; case MessageType.BombExploded: var bombExplodedMessage = JsonConvert.DeserializeObject <BombExplosionMessage>(messageWrapper.Payload); ProcessBombExplosionMessage(bombExplodedMessage); break; default: throw new UnityException(); } }