Exemple #1
0
    public void Start()
    {
        m_ingameManager = GetComponent <PlayerIngameManager>();
        m_lobbyManager  = GetComponent <PlayerLobbyManager>();
        InitTeam();

        s_allPlayerManagers.Add(this);
    }
Exemple #2
0
    /// <summary>
    /// Effectue un scan de tous les PlayerManager ayant été créés. Si un PlayerManager scanné n'est pas trouvé
    /// dans le dictionnaire du menu, on considère qu'il est nouveau et qu'il faut l'ajouter au dictionnaire.
    /// En l'ajoutant au dictionnaire, le PlayerManager est paramétré et son emplacement dans le Lobby créé.
    /// </summary>
    public void ScanForNewPlayerManager()
    {
        List <PlayerManager> allPlayerManagers = PlayerManager.AllPlayerManagers();

        // On suppose que si les listes sont de la même taille, on a pas perdu de joueur ou un nouveau joueur.
        // Cela dit, un cas extrême serait qu'un joueur se déconnecte et qu'un autre se connecte à l'exact même moment
        // Afin de rendre cette condition invalide...
        if (m_displayedPlayers.Count == allPlayerManagers.Count)
        {
            return;
        }

        foreach (PlayerManager playerManager in allPlayerManagers)
        {
            if (!m_displayedPlayers.Contains(playerManager))
            {
                GameObject      newSlot   = Instantiate(m_slotPrefab);
                PlayerLobbySlot lobbySlot = newSlot.GetComponent <PlayerLobbySlot>();
                m_displayedPlayers.Add(playerManager);
                int teamCount;

                if (playerManager.Team() == 0)
                {
                    teamCount = m_redSlots.Count;
                    newSlot.transform.SetParent(m_redSlotsContainer.transform, false);
                    m_redSlots.Add(lobbySlot);
                }
                else
                {
                    teamCount = m_blueSlots.Count;
                    newSlot.transform.SetParent(m_blueSlotsContainer.transform, false);
                    m_blueSlots.Add(lobbySlot);
                }

                RectTransform newSlotRectT = newSlot.GetComponent <RectTransform>();
                Vector3       offset       = new Vector3(0, (newSlotRectT.rect.height + 5) * teamCount, 0);
                newSlotRectT.localPosition = newSlotRectT.localPosition - offset;

                playerManager.LobbyManager().Initialize(lobbySlot, this);

                if (playerManager.isLocalPlayer)
                {
                    m_localPlayerManager      = playerManager;
                    m_localPlayerLobbyManager = m_localPlayerManager.LobbyManager();
                }
            }
        }

        if (allPlayerManagers.Count > 0)
        {
            m_startButton.GetComponent <Button>().interactable = true;
            if (m_localPlayerLobbyManager != null)
            {
                m_swapTeamButton.interactable = !m_localPlayerLobbyManager.Ready();
            }
        }
    }
Exemple #3
0
 public void UpdateSlot(PlayerLobbySlot slot, PlayerLobbyManager lobbyManager)
 {
     slot.SetReadyMarkerTexture(lobbyManager.Ready());
 }
 void Awake()
 {
     Instance = this;
 }