Example #1
0
        /// <summary>
        /// Copies each text and shows each root.
        /// Hides any options beyond number of option texts.
        ///
        /// Assigns option index and button subscribes to selected event.
        /// </summary>
        private void PopulateOptions(
            List <string> optionTexts,
            OptionView[] optionViews)
        {
            int numOptionTexts = optionTexts == null ? 0 : optionTexts.Count;
            int numOptions     = optionViews.Length;

            Debug.Assert(numOptions >= numOptionTexts,
                         "Expected at least " + numOptions + " option views " +
                         "equal or greater than " + numOptionTexts + " optionTexts."
                         );
            if (numOptions < numOptionTexts)
            {
                numOptionTexts = numOptions;
            }

            for (int optionIndex = 0; optionIndex < numOptionTexts; ++optionIndex)
            {
                OptionView optionView = optionViews[optionIndex];
                string     optionText = optionTexts[optionIndex];
                AddListener(optionView, optionText);
                optionView.optionRoot.SetActive(true);
            }

            for (int optionIndex = numOptionTexts; optionIndex < numOptions; ++optionIndex)
            {
                OptionView optionView = optionViews[optionIndex];
                optionView.optionRoot.SetActive(false);
                optionView.optionText.text = "";

                RemoveListener(optionView);
            }
        }
Example #2
0
        private static void RemoveListener(OptionView optionView)
        {
            if (optionView.onThisSelected == null)
            {
                return;
            }

            if (optionView.optionButton == null)
            {
                return;
            }

            optionView.optionButton.onClick.RemoveAllListeners();
        }
Example #3
0
        private void AddListener(OptionView optionView, string optionText)
        {
            if (optionView.onThisSelected == null ||
                optionView.optionText.text != optionText)
            {
                optionView.optionText.text = optionText;
                optionView.onThisSelected  = () => SelectOptionText(optionText);
            }

            if (optionView.optionButton == null)
            {
                Debug.Assert(optionView.optionButton != null,
                             "Expected option button. optionText=" + optionText,
                             context: optionView.optionRoot
                             );
                return;
            }
            optionView.optionButton.onClick.RemoveAllListeners();
            optionView.optionButton.onClick.AddListener(optionView.onThisSelected);
        }