// MonoBehaviour's interface void Awake() { if (m_AutomaticGenerateItems && m_Root != null) { // Cleanup Root children. for (int childIndex = 0; childIndex < m_Root.childCount; ++childIndex) { Transform childTransform = m_Root.GetChild(childIndex); Destroy(childTransform.gameObject); } // Create an Horizontal Layout Group in order to arrange items. HorizontalLayoutGroup horizontalLayoutGroup = m_Root.gameObject.AddComponent <HorizontalLayoutGroup>(); horizontalLayoutGroup.childAlignment = TextAnchor.MiddleCenter; horizontalLayoutGroup.spacing = 0f; horizontalLayoutGroup.padding = new RectOffset(0, 0, 0, 0); horizontalLayoutGroup.childForceExpandHeight = false; horizontalLayoutGroup.childForceExpandWidth = true; // Create prefab items. if (m_NavbarItemPrefab != null) { m_NavbarItems = new UINavbarItem[m_MaxItems]; for (int itemIndex = 0; itemIndex < m_NavbarItems.Length; ++itemIndex) { UINavbarItem navbarItem = Instantiate <UINavbarItem>(m_NavbarItemPrefab); navbarItem.transform.SetParent(m_Root, false); navbarItem.transform.SetAsLastSibling(); m_NavbarItems[itemIndex] = navbarItem; } } } // Clear items. for (int itemIndex = 0; itemIndex < m_NavbarItems.Length; ++itemIndex) { UINavbarItem navbarItem = m_NavbarItems[itemIndex]; if (navbarItem != null) { navbarItem.isVisible = false; } } // Build registration map. for (int index = 0; index < m_NavbarItems.Length; ++index) { m_RegisteredEntries.Add(new List <UINavbarEntry>()); } }
private void InternalRefreshNavbar() { for (int index = 0; index < m_NavbarItems.Length; ++index) { UINavbarItem navbarItem = m_NavbarItems[index]; if (navbarItem != null) { List <UINavbarEntry> entries = m_RegisteredEntries[index]; if (entries.Count > 0) { // Set this item visible. navbarItem.isVisible = true; // Set activation state. UINavbarEntry firstEntry = entries[0]; if (m_Dirty) { Sprite sprite = GetSprite(firstEntry.iconKey); navbarItem.SetIcon(sprite); navbarItem.SetText(firstEntry.text); } navbarItem.isActive = firstEntry.isActive; } else { // Set this item hidden. navbarItem.isVisible = false; } } } m_Dirty = false; }