public void SyncInputControllers() { List <int> selected = new List <int>(); List <long> selectediD = new List <long>(); foreach (var controller in controllers) { selectediD.Add(controller.memberId); selected.Add(GetIndexOfCharacter(controller.controlledCharacter)); } PlayerHandlerData data = new PlayerHandlerData(selected.ToArray(), selectediD.ToArray()); DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.CONTROLLER_SYNC, data.ToBytes()); }
// Start is called before the first frame update void Start() { controllers = GetComponentsInChildren <InputController>(); foreach (var item in playableChracters) { charactherDictionary.Add(item.id, item); } GameManager.INSTANCE.AssignPlayersToControllers(ref controllers); foreach (var controller in controllers) { if (controller.memberId != 0) { controllerDictionary.Add(controller.memberId, controller); } } if (GameManager.INSTANCE.IsTheHost()) { List <int> selected = new List <int>(); List <long> selectediD = new List <long>(); //Randomize the Controllers Playercharacter foreach (var controller in controllers) { int rand = UnityEngine.Random.Range(0, playableChracters.Count); while (selected.Contains(rand)) { rand = UnityEngine.Random.Range(0, playableChracters.Count); } selected.Add(rand); selectediD.Add(controller.memberId); } SetAllPlayers(selected.ToArray(), selectediD.ToArray()); PlayerHandlerData data = new PlayerHandlerData(selected.ToArray(), selectediD.ToArray()); DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.CONTROLLER_SYNC, data.ToBytes()); } }