private void CalculateData() { List <ItemData> itemDatas = new List <ItemData>(); //椭圆的周长计算 float length = (ItemSize.x + Offset) * _items.Count; //每个sprite之间的比例差值 float ratioOffset = 1 / (float)_items.Count; for (int i = 0; i < _items.Count; i++) { ItemData itemData = new ItemData(); itemData.PosId = i; itemDatas.Add(itemData); _items[i].PosId = i; ItemPosData data = new ItemPosData(); data.X = GetX(ratioOffset * i, length); data.ScaleTimes = GetScaleTimes(ratioOffset * i, ScaleTimesMax, ScaleTimesMin); _posData.Add(data); } itemDatas = itemDatas.OrderBy(item => _posData[item.PosId].ScaleTimes).ToList(); for (int i = 0; i < itemDatas.Count; i++) { itemDatas[i].OrderId = i + 1; _posData[itemDatas[i].PosId].Order = i; } }
private void CalulateData() { List <ItemData> itemDatas = new List <ItemData>(); float length = (ItemSize.x + Offset) * _items.Count; float radioOffset = 1 / (float)_items.Count; float radio = 0; for (int i = 0; i < _items.Count; i++) { ItemData itemData = new ItemData(); itemData.PosId = i; itemDatas.Add(itemData); _items[i].PosId = i; ItemPosData data = new ItemPosData(); data.X = GetX(radio, length); data.ScaleTimes = GetScaleTimes(radio, ScaleTimesMax, ScaleTimesMin); radio += radioOffset; _posData.Add(data); } itemDatas = itemDatas.OrderBy(u => _posData[u.PosId].ScaleTimes).ToList(); for (int i = 0; i < itemDatas.Count; i++) { _posData[itemDatas[i].PosId].Order = i; } }
private void CalculateData() { List <ItemData> itemDatas = new List <ItemData>(); float length = (ItemSize.x + itemOffset) * _itemList.Count; float ratioOffset = 1.0f / (float)_itemList.Count; float ratio = 0f; for (int i = 0; i < _itemList.Count; i++) { ItemData itemData = new ItemData(); itemData.PosId = i; _itemList[i].posId = i; itemDatas.Add(itemData); ItemPosData itemPosData = new ItemPosData(); itemPosData.X = GetX(ratio, length); itemPosData.ScaleTimes = GetScaleTimes(ratio, maxSize, minSize); ratio += ratioOffset; _posDataList.Add(itemPosData); } itemDatas = itemDatas.OrderBy(n => _posDataList[n.PosId].ScaleTimes).ToList();//ascending the order by scale times for (int i = 0; i < itemDatas.Count; i++) { _posDataList[itemDatas[i].PosId].Order = i; } }
public void SetPosData(ItemPosData data) { Rect.DOAnchorPos(Vector2.right * data.X, _aniTime); Rect.DOScale(Vector3.one * data.ScaleTimes, _aniTime); StartCoroutine(Wait(data)); }
/// <summary> /// 对某个子项进行位置信息赋值,以确定其显示位置X轴、缩放、层级 /// </summary> /// <param name="data">包含X轴、缩放和层级的数据</param> public void SetPosData(ItemPosData data) { Rect.DOAnchorPos(Vector2.right * data.X, _animTime); Rect.DOScale(data.ScaleTimes, _animTime); //Rect.anchoredPosition = Vector2.right * data.X; //Rect.localScale = Vector3.one * data.ScaleTimes; //transform.SetSiblingIndex(data.Order); StartCoroutine(Wait(data)); //延迟改变层级 }
public void SetPosData(ItemPosData data) { Rect.DOAnchorPos(Vector2.right * data.X, _aniTime); Rect.DOScale(Vector3.one * data.ScaleTimes, _aniTime); //Rect.anchoredPosition = Vector2.right * data.X; //Rect.localScale = Vector3.one * data.ScaleTimes; StartCoroutine(Wait(data)); }
public void SetSelfData(ItemPosData itemPosData) { rect.DOAnchorPos(Vector2.right * itemPosData.X, _animTime); rect.DOScale(Vector3.one * itemPosData.ScaleTimes, _animTime); //rect.anchoredPosition = Vector2.right * itemPosData.X; //rect.localScale = Vector3.one*itemPosData.ScaleTimes; //transform.SetSiblingIndex(itemPosData.Order); StartCoroutine(DelayChangeImgOrder(itemPosData)); }
IEnumerator Wait(ItemPosData data) { yield return(new WaitForSeconds(_animTime * 0.3f)); transform.SetSiblingIndex(data.Order); }
private IEnumerator DelayChangeImgOrder(ItemPosData data) { yield return(new WaitForSeconds(_animTime * 0.3f)); transform.SetSiblingIndex(data.Order); }