public void OnEvent(EventData photonEvent) { switch (photonEvent.Code) { case EventCodes.StartGame: if (characterSpawner != null) { characterSpawner.DestroyCharacter(); } break; case EventCodes.AssignPlayerTypeAndSpawnPoint: // Deconstruct event int actorNumber = (int)EventCodes.GetEventContentAtPosition(photonEvent, 0); if (actorNumber == PhotonNetwork.LocalPlayer.ActorNumber) { CharacterType assignedCharacterType = (CharacterType)EventCodes.GetEventContentAtPosition(photonEvent, 1); Vector3 spawnPoint = (Vector2)EventCodes.GetEventContentAtPosition(photonEvent, 2); characterSpawner = new CharacterSpawner(); // Spawn Character of type `assignedCharacterType` across clients Character character = characterSpawner.SpawnPlayerCharacter( assignedCharacterType, spawnPoint, Vector2.zero, true, true, null, false, PhotonNetwork.LocalPlayer.NickName); character.gameObject.AddComponent <AudioListener>(); UiManager.Instance.minimap.SetTarget(character.transform); UiManager.Instance.minimap.Activate(); } break; case EventCodes.Mutation: if (characterSpawner != null) { // CharacterSpawner may be null if we're currently in a tutorial characterSpawner.OnMutation(); } break; } }