コード例 #1
0
        private void Awake()
        {
            guessPanel.gameObject.SetActive(false);

            firstCard = GameObjectHelper.AddChild(cardRoot, cardTemplate);
            sndCard   = GameObjectHelper.AddChild(cardRoot, cardTemplate);

            firstCard.onClickCallback = OnClickCard;
            sndCard.onClickCallback   = OnClickCard;
        }
コード例 #2
0
        public void ReCalcItemSize(bool rebuildSizeList = false)
        {
            if (m_getSizeHandler == null)
            {
                return;
            }
            if (rebuildSizeList)
            {
                m_sizeList.Clear();
            }
            m_positionList.Clear();
            m_minSize      = float.MaxValue;
            m_otherMaxSize = 0f;
            float totalSize = 0f;

            m_positionList.Add(0);
            for (int i = 0; i < m_dataList.Count; ++i)
            {
                var size = Vector2.zero;

                if (rebuildSizeList)
                {
                    size = m_getSizeHandler(i, m_dataList [i]);
                }
                else
                {
                    size = m_sizeList [i];
                }
                var cur = (isVertical ? size.y : size.x);
                m_minSize      = Mathf.Min(cur, m_minSize);
                m_otherMaxSize = Mathf.Max((isVertical ? size.x : size.y), m_otherMaxSize);
                if (rebuildSizeList)
                {
                    m_sizeList.Add(size);
                }
                totalSize += cur + spacing;
                m_positionList.Add(totalSize);
            }

            m_displayListCount = Mathf.CeilToInt(GetScrollRectSize() / (m_minSize + spacing));
            if (m_dataList.Count > 1)
            {
                m_displayListCount = Mathf.Max(2, m_displayListCount);
            }
            for (int i = rectTransform.childCount; i < m_displayListCount; ++i)
            {
                var obj = GameObjectHelper.AddChild(rectTransform, m_itemTemplate);
                obj.gameObject.SetActive(i < m_dataList.Count);
            }
            ForceUpdateContent();
            SetDirty();
        }
コード例 #3
0
        public override void OnInit()
        {
            base.OnInit();

            for (int i = 0; i < 2; i++)
            {
                var item = GameObjectHelper.AddChild(transform, template);
                item.gameObject.SetActive(false);
                m_boxes.Add(item);
            }

            Register <MessageBoxEvent>(EventDef.MessageBox, OnEvent);
        }
コード例 #4
0
ファイル: ListLayoutGroup.cs プロジェクト: wcsjb/XiaoGame_New
    public void SetData <P, D>(ICollection <D> dataList, System.Action <int, P, D> setContentHandler)
        where P : MonoBehaviour
    {
        objectType = typeof(P);
        m_dataList.Clear();
        if (dataList != null && dataList.Count > 0)
        {
            var enu = dataList.GetEnumerator();
            while (enu.MoveNext())
            {
                m_dataList.Add(enu.Current);
            }
        }

        if (setContentHandler == null)
        {
            m_setContentHandler = null;
        }
        else
        {
            m_setContentHandler = (index, go, data) => {
                var dt   = (D)data;
                var item = go.GetComponentInChildren(objectType);

                if (setContentHandler != null)
                {
                    setContentHandler.Invoke(index, item as P, dt);
                }
            }
        };
        m_scrollRect.vertical   = (m_scrollDirection == Axis.Vertical);
        m_scrollRect.horizontal = (m_scrollDirection == Axis.Horizontal);
        m_Constraint            = m_scrollRect.vertical ? Constraint.FixedColumnCount : Constraint.FixedRowCount;
        if (!m_autoSetConstraint && m_Constraint != m_dataConstraint)
        {
            m_cacheList.Clear();
            m_cacheList.AddRange(m_dataList);
            int lineCount = m_cacheList.Count / constraintCount;
            for (int i = 0; i < m_cacheList.Count; ++i)
            {
                int x = i / constraintCount;
                int y = i % constraintCount;
                m_dataList[i] = m_cacheList[y * lineCount + x];
            }
        }
        var scrollRectSize = GetScrollRectSizeAxis();
        var cellSize       = GetCellSizeAxis(true);

        displayListCount = Mathf.CeilToInt(scrollRectSize / cellSize) + 1;

        if (centerPrior == true && displayListCount > (m_dataList.Count / constraintCount) + centerPriorThreshold)
        {
            var centerPadding = (scrollRectSize - (m_dataList.Count / constraintCount) * cellSize + GetSpacingAxis()) * 0.5f;
            if (m_scrollRect.horizontal)
            {
                m_centerPriorPadding = Vector2.right * centerPadding;
            }
            else
            {
                m_centerPriorPadding = Vector2.up * centerPadding;
            }
        }
        else
        {
            m_centerPriorPadding = Vector2.zero;
        }
        for (int i = rectTransform.childCount; i < (displayListCount * constraintCount); ++i)
        {
            RectTransform parent = rectTransform;
            if (createParentGameobject)
            {
                parent = new GameObject(i.ToString()).AddComponent <RectTransform> ();
                parent.SetParent(rectTransform, false);
            }
            var obj = GameObjectHelper.AddChild(parent, m_objectTemplate);
            if (createParentGameobject)
            {
                obj.GetComponent <RectTransform> ().pivot = Vector2.up;
            }
            obj.gameObject.SetActive(true);
        }
        ForceUpdateContent();
        SetDirty();
    }