I’m building a 1v1 Multiplayer game and I’ve reached a point where when the Master client first looks for a battle it doesn’t fully load the scene and the other player does. But if the nonMaster client looks first for a battle they both load correctly.
Here is the button start looking for battle
public void StartBattle() { foreach (AccountStats acc in LobbyManagerNew.Players) { if (acc.me) { acc.isLooking = true; } } }
Here is where it looks for battle
public void Update() { players = GetPlayers(); if (myplayer.isLooking) { if (GameConstants.timedOut >= 0) { myplayer.count = GameConstants.timedOut; GameConstants.timedOut -= Time.deltaTime; AccountStats acc = GameFunctions.FoundPlayer(myplayer.mmrRating, players.ToArray()); if (acc != null) { PhotonNetwork.LoadLevel(2); } } else { myplayer.isLooking = false; myplayer.count = 0; } } } List<AccountStats> GetPlayers() { List<AccountStats> gotPlayers = new List<AccountStats>(); GameObject[] gos = GameObject.FindGameObjectsWithTag(GameConstants.photonPlayer); foreach (GameObject go in gos) { gotPlayers.Add(go.GetComponent<AccountStats>()); } return gotPlayers; }
Here is how its finding another player
public static AccountStats FoundPlayer(int mmr, AccountStats[] accountStats) { foreach (AccountStats acc in accountStats) { if (acc.isLooking && !acc.me) { if (mmr <= acc.mmrRating + 50 && mmr >= acc.mmrRating - 50) { return acc; } } } return null; }