//-------------------------------------------------------- // [Author]: 玩个游戏 // [ Date ]: Tuesday, August 14, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; public class DynamicCyclicScroll : CyclicScroll { [SerializeField] int m_MaxDynamicElements; public override void Init(List _datas, bool _stepByStep = false) { var maxCount = Mathf.Min(m_MaxDynamicElements, _datas.Count); var beyond = _datas.Count > m_MaxDynamicElements; switch (align) { case Align.Bottom: case Align.Top: var height = m_BoundOffset.top + m_BoundOffset.bottom + maxCount * m_CellSize.y + (maxCount - 1) * m_Spacing.y + (beyond ? m_CellSize.y * 0.5f : 0f); rectTransform.sizeDelta = rectTransform.sizeDelta.SetY(height); break; case Align.Left: case Align.Right: var width = m_BoundOffset.left + m_BoundOffset.right + maxCount * m_CellSize.x + (maxCount - 1) * m_Spacing.x + (beyond ? m_CellSize.x * 0.5f : 0f); rectTransform.sizeDelta = rectTransform.sizeDelta.SetX(width); break; } this.enabled = beyond; base.Init(_datas, _stepByStep); } }