private static void ProcessFirstPlayersSyncMessage(FirstPlayersSyncMessage firstPlayersSyncMessage) { var serverPlayers = firstPlayersSyncMessage.Players; foreach (var serverPlayer in serverPlayers) { var prefab = Resources.Load <GameObject>("Prefabs/MainHero"); var instantiate = Object.Instantiate(prefab, new Vector3(serverPlayer.X, serverPlayer.Y, serverPlayer.Z), Quaternion.identity); instantiate.name = serverPlayer.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(); } }