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; }