예제 #1
0
        public void PopulateChannelPanel(ChatChannel channelsAvailable, ChatChannel channelsSelected)
        {
            foreach (ChatChannel channel in Enum.GetValues(typeof(ChatChannel)))
            {
                if (channel == ChatChannel.None)
                {
                    continue;
                }

                if ((channelsAvailable & channel) == channel)
                {
                    GameObject channelToggleItem = Instantiate(channelToggle, channelPanel.transform);
                    Toggle     toggle            = channelToggleItem.GetComponent <Toggle>();
                    toggle.GetComponent <UIToggleChannel>().channel = channel;
                    toggle.GetComponentInChildren <Text>().text     = IconConstants.ChatPanelIcons[channel];
                    toggle.onValueChanged.AddListener(Toggle_Channel);

                    if ((channelsSelected & channel) == channel)
                    {
                        toggle.isOn = true;
                    }
                    else
                    {
                        toggle.isOn = false;
                    }
                }
            }

            float                 width                 = channelPanel.GetChild(0).GetComponent <RectTransform>().rect.width;
            int                   count                 = channelPanel.transform.childCount;
            LayoutElement         layoutElement         = channelPanel.GetComponent <LayoutElement>();
            HorizontalLayoutGroup horizontalLayoutGroup = channelPanel.GetComponent <HorizontalLayoutGroup>();

            layoutElement.minWidth = width * count + horizontalLayoutGroup.spacing * count;
        }
예제 #2
0
        public void PopulateChannelPanel(ChatChannel channelsAvailable, ChatChannel channelsSelected)
        {
            foreach (ChatChannel currentChannel in Enum.GetValues(typeof(ChatChannel)))
            {
                if (currentChannel == ChatChannel.None || (channelsAvailable & currentChannel) != currentChannel)
                {
                    continue;
                }

                GameObject channelToggleItem = Instantiate(channelToggle, channelPanel.transform);
                Toggle     toggle            = channelToggleItem.GetComponent <Toggle>();
                toggle.GetComponent <UIToggleChannel>().channel = currentChannel;
                toggle.GetComponentInChildren <Text>().text     = IconConstants.ChatPanelIcons[currentChannel];
                toggle.onValueChanged.AddListener(Toggle_Channel);

                toggle.isOn = (channelsSelected & currentChannel) == currentChannel;
                if (!ChannelToggles.ContainsKey(currentChannel))
                {
                    ChannelToggles.Add(currentChannel, toggle);
                }
            }

            float                 width                 = 64f;
            int                   count                 = ChannelToggles.Count;
            LayoutElement         layoutElement         = channelPanel.GetComponent <LayoutElement>();
            HorizontalLayoutGroup horizontalLayoutGroup = channelPanel.GetComponent <HorizontalLayoutGroup>();

            layoutElement.minWidth = width * count + horizontalLayoutGroup.spacing * count;
//			Logger.Log($"Populating wid={width} cnt={count} minWid={layoutElement.minWidth}");
        }