public IEnumerator Start() { yield return(new WaitUntil(() => GameManager.Instance != null)); yield return(new WaitUntil(GameManager.Instance.GetAllPlayersReady)); if (NetworkServer.connections.Count == 1 && m_playerNumber == PlayerEntity.Player.Player2) { yield return(new WaitWhile(() => null == FindObjectOfType <AIControl>())); m_playerNumber = PlayerEntity.Player.Bot; m_player = FindObjectOfType <AIControl>(); yield return(new WaitUntil(() => NetworkServer.SpawnWithClientAuthority(m_player.gameObject, GameManager.Instance.GetPlayer(PlayerEntity.Player.Player1).GetComponent <NetworkIdentity>().connectionToClient))); } else { m_player = NetworkServer.connections[(int)m_playerNumber].playerControllers[0].gameObject.GetComponent <PlayerEntity>(); } m_player.TakeControl(GetComponent <NetworkIdentity>()); foreach (GameObject item in m_objectToControl) { m_player.TakeControl(item.GetComponent <NetworkIdentity>()); if (item.GetComponent <SpawnUnits>()) { SpawnUnits spawnUnits = item.GetComponent <SpawnUnits>(); spawnUnits.RpcInitPlayerNumber(m_playerNumber); spawnUnits.SetTarget(GetNearestNexus().gameObject); } } }
public override void SetPlayerOwner(PlayerEntity.Player player) { base.SetPlayerOwner(player); SpawnUnits spawnUnitsComponent = GetComponent <SpawnUnits>(); spawnUnitsComponent.SetPlayerNumber(m_playerOwner); spawnUnitsComponent.SetTarget(GetNearestEnemyNexus().gameObject); spawnUnitsComponent.GetUISelectSpawnUnit().SetIcons(); }