Пример #1
0
    protected override void Start()
    {
        base.Start();
        //Get child items
        listItems = new CircleScrollRectItemBase[gameObject.transform.childCount];
        int index = 0;

        foreach (Transform trans in gameObject.transform)
        {
            //Debug.Log("child" + trans.name);
            CircleScrollRectItemBase item = trans.GetComponent <CircleScrollRectItemBase>();
            listItems[index++] = item;
        }
        //Check
        if (null == listItems || listItems.Length == 0)
        {
            return;
        }
        //Sort UI item list by postion
        if (horizontal)
        {
            //ascending order
            Array.Sort(listItems, ComparisionX);
        }
        else
        {
            // descending order
            Array.Sort(listItems, ComparisionY);
        }

        //element relationship and positions
        itemPostions = new Vector3[listItems.Length];
        for (int i = 0; i < listItems.Length; ++i)
        {
            listItems[i].SetItemConfig(i,                                                         //set id
                                       listItems[(i + 1) % listItems.Length],                     //next item
                                       listItems[(i - 1 + listItems.Length) % listItems.Length]); //previous item

            itemPostions[i] = new Vector3(listItems[i].transform.localPosition.x,
                                          listItems[i].transform.localPosition.y,
                                          listItems[i].transform.localPosition.z);
            listItems[i].currPosIndex = i;
        }
        RefreshContentListLength();
        TriggerDragToTargetPostionEvent();
        targetContentListIndex = -1;
        if (targetPositionIndex < 0)
        {
            targetPositionIndex = listItems.Length / 2;
        }
    }
 /// <summary>
 /// Init config
 /// </summary>
 /// <param name="id"></param>
 /// <param name="nItem"></param>
 /// <param name="pItem"></param>
 public void SetItemConfig(int id, CircleScrollRectItemBase nItem, CircleScrollRectItemBase pItem)
 {
     this.itemListIndex = id;
     this.prevItem      = pItem;
     this.nextItem      = nItem;
 }