コード例 #1
0
    public void InitControl()
    {
        if (_root != null)
        {
            DestroyImmediate(_root.gameObject);
        }

        if (ContainerPrefab != null)
        {
            // create
            var own = GetComponent <RectTransform>();
            _root = Instantiate(ContainerPrefab, own.position, own.rotation);
            _root.transform.SetParent(transform, false);
            _scrollControl = _root.ItemPanel.GetComponent <ScrollRect> ();
            _scrollControl.scrollSensitivity = ScrollSensitivity;
            var rt = _root.GetComponent <RectTransform>();
            rt.pivot = new Vector2(0.5f, 0.5f);
            //root.anchoredPosition = Vector2.zero;
            rt.anchorMin = Vector2.zero;
            rt.anchorMax = Vector2.one;
            rt.offsetMax = Vector2.zero;
            rt.offsetMin = Vector2.zero;
            _root.gameObject.hideFlags = HideFlags.HideInHierarchy;             // should really be HideAndDontSave, but unity crashes
            _root.ItemPanel.alpha      = 0.0f;

            // create menu item
            var toCreate = ItemMenuPrefab;
            if (toCreate == null)
            {
                toCreate = ItemPrefab;
            }
            CreateMenuButton(toCreate);
        }
    }
コード例 #2
0
 public void InitControl()
 {
     if (root != null)
     {
         Object.DestroyImmediate(root.gameObject);
     }
     if (containerPrefab != null)
     {
         RectTransform component = GetComponent <RectTransform>();
         root = (Object.Instantiate(containerPrefab, component.position, component.rotation) as StyledComboBoxPrefab);
         root.transform.SetParent(base.transform, worldPositionStays: false);
         RectTransform component2 = root.GetComponent <RectTransform>();
         component2.pivot          = new Vector2(0.5f, 0.5f);
         component2.anchorMin      = Vector2.zero;
         component2.anchorMax      = Vector2.one;
         component2.offsetMax      = Vector2.zero;
         component2.offsetMin      = Vector2.zero;
         root.gameObject.hideFlags = HideFlags.HideInHierarchy;
         root.itemPanel.gameObject.SetActive(isToggled);
     }
 }
コード例 #3
0
    private void AddItem(object data)
    {
        if (ItemPrefab != null)
        {
            var corners = new Vector3[4];
            ItemPrefab.GetComponent <RectTransform>().GetLocalCorners(corners);
            var pos   = corners[0];
            var sizeY = pos.y - corners[2].y;
            pos.y = _items.Count * sizeY - 5f;
            var styledItem = Instantiate(ItemPrefab, pos, _root.ItemRoot.rotation);
            var trans      = styledItem.GetComponent <RectTransform>();
            styledItem.Populate(data);
            trans.SetParent(_root.ItemRoot.transform, false);

            trans.pivot            = new Vector2(0, 1);
            trans.anchorMin        = new Vector2(0, 1);
            trans.anchorMax        = Vector2.one;
            trans.anchoredPosition = new Vector2(0.0f, pos.y);
            _items.Add(styledItem);

            trans.offsetMin = new Vector2(0, pos.y + sizeY);
            trans.offsetMax = new Vector2(0, pos.y);
            var offsetSize = (_items.Count + 1) * sizeY;
            if (-offsetSize > _root.GetComponent <RectTransform> ().rect.height)
            {
                _scrollControl.vertical = true;
                _scrollControl.verticalScrollbar.gameObject.SetActive(true);
            }
            _root.ItemRoot.offsetMin = new Vector2(_root.ItemRoot.offsetMin.x, offsetSize);

            var b        = styledItem.GetButton();
            var curIndex = _items.Count - 1;
            if (b != null)
            {
                b.onClick.AddListener(delegate { OnItemClicked(styledItem, curIndex); });
            }
        }
    }
コード例 #4
0
ファイル: StyledComboBox.cs プロジェクト: gkjolin/Impulse
    private void AddItem(object data)
    {
        if (itemPrefab != null)
        {
            Vector3[] corners = new Vector3[4];
            itemPrefab.GetComponent <RectTransform>().GetLocalCorners(corners);
            Vector3 pos   = corners[0];
            float   sizeY = pos.y - corners[2].y;
            pos.y = items.Count * sizeY - 5f;
            StyledItem    styledItem = Instantiate(itemPrefab, pos, root.itemRoot.rotation) as StyledItem;
            RectTransform trans      = styledItem.GetComponent <RectTransform>();
            styledItem.Populate(data);
            trans.SetParent(root.itemRoot.transform, false);

            trans.pivot            = new Vector2(0, 1);
            trans.anchorMin        = new Vector2(0, 1);
            trans.anchorMax        = Vector2.one;
            trans.anchoredPosition = new Vector2(0.0f, pos.y);
            items.Add(styledItem);

            trans.offsetMin = new Vector2(0, pos.y + sizeY);
            trans.offsetMax = new Vector2(0, pos.y);
            float offsetSize = (items.Count + 1) * sizeY;
            if (-offsetSize > root.GetComponent <RectTransform> ().rect.height)
            {
                scrollControl.vertical = true;
                scrollControl.verticalScrollbar.gameObject.SetActive(true);
            }
            root.itemRoot.offsetMin = new Vector2(root.itemRoot.offsetMin.x, offsetSize);

            Button b        = styledItem.GetButton();
            int    curIndex = items.Count - 1;
            if (b != null)
            {
                b.onClick.AddListener(delegate() { OnItemClicked(styledItem, curIndex); });
            }
        }
    }
コード例 #5
0
ファイル: StyledComboBox.cs プロジェクト: pontura/ArtPlacer
    public void InitControl()
    {
        if (root != null)
            DestroyImmediate(root.gameObject);

        if (containerPrefab != null)
        {
            // create
            RectTransform own = GetComponent<RectTransform>();
            root = Instantiate(containerPrefab, own.position, own.rotation) as StyledComboBoxPrefab;
            root.transform.parent = this.transform;

            RectTransform rt = root.GetComponent<RectTransform>();
            rt.pivot = new Vector2(0.5f, 0.5f);
            //root.anchoredPosition = Vector2.zero;
            rt.anchorMin = Vector2.zero;
            rt.anchorMax = Vector2.one;
            rt.offsetMax = Vector2.zero;
            rt.offsetMin = Vector2.zero;
            root.gameObject.hideFlags = HideFlags.HideInHierarchy; // should really be HideAndDontSave, but unity crashes
            root.itemPanel.alpha = 0.0f;

            // create menu item
            StyledItem toCreate = itemMenuPrefab;
            if (toCreate == null)
                toCreate = itemPrefab;
            CreateMenuButton(toCreate);
        }
    }