示例#1
0
    private void Populate(Family[] families)
    {
        for (int i = familyPanels.Count; i < families.Length; i++)
        {
            GameObject   newPanel   = Instantiate(newFamilyPanel, newFamilyContent);
            FamilyInfoUI familyInfo = newPanel.GetComponent <FamilyInfoUI>();
            familyInfo.OnClickEvent += OnSelect;
            familyPanels.Add(familyInfo);
        }

        for (int i = 0; i < familyPanels.Count; i++)
        {
            if (i < families.Length)
            {
                familyPanels[i].Set(families[i]);
            }
            else
            {
                familyPanels[i].gameObject.SetActive(false);
            }
        }
    }
示例#2
0
    public void OnSelect(FamilyInfoUI newPanel)
    {
        //If selected, deselect
        if (selectedFamilyPanels.Contains(newPanel))
        {
            selectedFamilyPanels.Remove(newPanel);
        }
        else
        {
            selectedFamilyPanels.Add(newPanel);
        }

        //update ui
        UpdateTitle();
        foreach (FamilyInfoUI familyInfo in familyPanels)
        {
            bool selectionLeft = selectedFamilyPanels.Count < carData.MaximumNumberOfOccupants;
            bool thisPanel     = selectedFamilyPanels.Contains(familyInfo);
            familyInfo.interactable = selectionLeft || thisPanel;
        }

        inviteButton.interactable = selectedFamilyPanels.Count == carData.MaximumNumberOfOccupants;
    }