private void Awake() { guessPanel.gameObject.SetActive(false); firstCard = GameObjectHelper.AddChild(cardRoot, cardTemplate); sndCard = GameObjectHelper.AddChild(cardRoot, cardTemplate); firstCard.onClickCallback = OnClickCard; sndCard.onClickCallback = OnClickCard; }
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(); }
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); }
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(); }