public static FindLocalObject ( |
||
netId | The id of the networked object. | |
return |
public GameObject ReadGameObject() { GameObject obj2; NetworkInstanceId netId = this.ReadNetworkId(); if (netId.IsEmpty()) { return(null); } if (NetworkServer.active) { obj2 = NetworkServer.FindLocalObject(netId); } else { obj2 = ClientScene.FindLocalObject(netId); } if ((obj2 == null) && LogFilter.logDebug) { Debug.Log("ReadGameObject netId:" + netId + "go: null"); } return(obj2); }
public void DisablePlayerObjects() { if (LogFilter.logDev) { Debug.Log("NetworkMigrationManager DisablePlayerObjects"); } if (m_Peers == null) { return; } for (int i = 0; i < m_Peers.Length; i++) { PeerInfoMessage peerInfoMessage = m_Peers[i]; if (peerInfoMessage.playerIds == null) { continue; } for (int j = 0; j < peerInfoMessage.playerIds.Length; j++) { PeerInfoPlayer peerInfoPlayer = peerInfoMessage.playerIds[j]; if (LogFilter.logDev) { Debug.Log("DisablePlayerObjects disable player for " + peerInfoMessage.address + " netId:" + peerInfoPlayer.netId + " control:" + peerInfoPlayer.playerControllerId); } GameObject gameObject = ClientScene.FindLocalObject(peerInfoPlayer.netId); if (gameObject != null) { gameObject.SetActive(value: false); AddPendingPlayer(gameObject, peerInfoMessage.connectionId, peerInfoPlayer.netId, peerInfoPlayer.playerControllerId); } else if (LogFilter.logWarn) { Debug.LogWarning("DisablePlayerObjects didnt find player Conn:" + peerInfoMessage.connectionId + " NetId:" + peerInfoPlayer.netId); } } } }
// received on both host and clients void OnPeerClientAuthority(NetworkMessage netMsg) { var msg = netMsg.ReadMessage <PeerAuthorityMessage>(); if (LogFilter.logDebug) { Debug.Log("OnPeerClientAuthority for netId:" + msg.netId); } if (m_Peers == null) { // havent received peers yet. just ignore this. the peer list will contain this data. return; } // find the peer for connId foreach (var p in m_Peers) { if (p.connectionId == msg.connectionId) { if (p.playerIds == null) { p.playerIds = new PeerInfoPlayer[0]; } if (msg.authorityState) { foreach (var playerId in p.playerIds) { if (playerId.netId == msg.netId) { // already in list return; } } var newPlayerId = new PeerInfoPlayer(); newPlayerId.netId = msg.netId; newPlayerId.playerControllerId = -1; var pl = new List <PeerInfoPlayer>(p.playerIds); pl.Add(newPlayerId); p.playerIds = pl.ToArray(); } else { for (int i = 0; i < p.playerIds.Length; i++) { if (p.playerIds[i].netId == msg.netId) { var pl = new List <PeerInfoPlayer>(p.playerIds); pl.RemoveAt(i); p.playerIds = pl.ToArray(); break; } } } } } var foundObj = ClientScene.FindLocalObject(msg.netId); OnAuthorityUpdated(foundObj, msg.connectionId, msg.authorityState); }
void Update() { if ((gameTime % 3600) / 60 > 9) { gameTimerText.text = gameTime / 3600 + ":" + (gameTime % 3600) / 60; } else { gameTimerText.text = gameTime / 3600 + ":0" + (gameTime % 3600) / 60; } if (gameTime <= 0) { scores.Clear(); ending = true; if (winner != null) { Destroy(winner.gameObject); } winner = (Text)Instantiate(whoWon, whoWon.transform.position, whoWon.transform.rotation); winner.enabled = true; winner.gameObject.SetActive(true); winner.transform.SetParent(whoWon.transform.parent); try { for (int i = 0; i < playerKills.Count; i++) { ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); scores.Add(int.Parse(((Text)playerKills[i]).text) - int.Parse(((Text)playerDeaths[i]).text)); } } catch (Exception e) { disconnect(); } int indexOfWinner = 0; for (int i = 0; i < scores.Count; i++) { if ((int)scores[i] > (int)scores[indexOfWinner]) { indexOfWinner = i; } } winner.text = (string)playerNames[indexOfWinner] + " has won with a score of " + ((Text)playerKills[indexOfWinner]).text + " and " + ((Text)playerDeaths[indexOfWinner]).text; if (gameTime < -180) { disconnect(); } } GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); if (players.Length != playerNames.Count) { playerNames.Clear(); playerNetIDs.Clear(); for (int i = 0; i < playersInGame.Count; i++) { Destroy((Text)playersInGame[i]); Destroy((Text)playerDeaths[i]); Destroy((Text)playerKills[i]); } playerDeaths.Clear(); playerKills.Clear(); playersInGame.Clear(); for (int i = 0; i < players.Length; i++) { if (players[i].GetComponent <PlayerSetup>().playerName != "") { playerNames.Add(players[i].GetComponent <PlayerSetup>().playerName); playerNetIDs.Add(players[i].GetComponent <NetworkIdentity>().netId); print(playerNames[i]); playersInGame.Add((Text)Instantiate(playerHeading, new Vector3(playerHeading.transform.position.x, playerHeading.transform.position.y + (i + 1) * -35, 0), playerHeading.transform.rotation)); ((Text)playersInGame[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playersInGame[i]).text = (string)playerNames[i]; playerKills.Add((Text)Instantiate(killHeading, new Vector3(killHeading.transform.position.x, killHeading.transform.position.y + (i + 1) * -35, 0), killHeading.transform.rotation)); ((Text)playerKills[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); playerDeaths.Add((Text)Instantiate(deathHeading, new Vector3(deathHeading.transform.position.x, deathHeading.transform.position.y + (i + 1) * -35, 0), deathHeading.transform.rotation)); ((Text)playerDeaths[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); } } } if (!showGUI) { return; } if (Input.GetButtonDown("Pause") && ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) && !ending) { pausePanel.SetActive(!pausePanel.activeSelf); } if (Input.GetButton("Leaderboards") && ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) && !ending) { for (int i = 0; i < playerKills.Count; i++) { ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); } leaderboardPanel.SetActive(true); } else { leaderboardPanel.SetActive(false); } if (!NetworkClient.active && !NetworkServer.active /*manager.matchMaker == null*/) { if (winner != null) { Destroy(winner.gameObject); } ending = false; gameTime = originalGameTime; if (playerNames.Count > 0) { playerNames.Clear(); for (int i = 0; i < playersInGame.Count; i++) { Destroy((Text)playersInGame[i]); Destroy((Text)playerDeaths[i]); Destroy((Text)playerKills[i]); } playerDeaths.Clear(); playerKills.Clear(); playersInGame.Clear(); } leaderboardPanel.SetActive(false); pausePanel.SetActive(false); panelToToggleActive.SetActive(true); configPanel.SetActive(true); connectingPanel.SetActive(false); } if ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) { panelToToggleActive.SetActive(false); } else { panelToToggleActive.SetActive(true); } if (!manager.IsClientConnected() && NetworkClient.active) { connectingPanel.SetActive(true); configPanel.SetActive(false); attemptingConnect.GetComponent <Text>().text = "Attempting to Connect to " + manager.networkAddress; } }