void ShelfItemUpdate() { if (IsTouch) { Vector2 touchPos = TouchInterface.GetTouchPosition(); //calculate last touch ItemMoveMent += (touchPos.x - lastTouch.x) * (Sensitive / 10.0f); MoveSpeed = (touchPos.x - lastTouch.x) * (Sensitive / 10.0f) / (Time.deltaTime); currentMoveSpeed = MoveSpeed; if (ItemMoveMent > 0) { ItemMoveMent = 0; } if (ItemMoveMent < -(DetailLength * (ShelfItemList.Count - 1))) { ItemMoveMent = -DetailLength * (ShelfItemList.Count - 1); } lastTouch.x = touchPos.x; currentShelfIndex = (int)(-(ItemMoveMent - (DetailLength / 2.0f)) / DetailLength); SnappingMorph.morphEasein(ItemMoveMent, -currentShelfIndex * DetailLength, Mathf.Abs(MoveSpeed) / DetailLength + Smooth); //move all item for (int i = 0; i < ShelfItemList.Count; i++) { ShelfItemList [i].transform.localPosition = new Vector3(ItemMoveMent + i * DetailLength, 0, 0); float size = ((ScaleItemRate + 4) - Mathf.Abs(ShelfItemList [i].transform.localPosition.x)) / (ScaleItemRate + 4); ShelfItemList [i].transform.localScale = new Vector3(size, size, 1); ItemDetail idt = ShelfItemList [i].GetComponent <ItemDetail>(); idt.SetSortingOrder(10 - (int)Mathf.Abs(ShelfItemList [i].transform.localPosition.x * 100)); } //move arrow item PrevPageArrow.transform.localPosition = new Vector3(-1 + ItemMoveMent + -DetailLength, 0, 0); NextPageArrow.transform.localPosition = new Vector3(1 + ItemMoveMent + ShelfItemList.Count * DetailLength, 0, 0); } }
public void CreateShelfItem(ContentData[] dataList, List <DownloadedTexture> dtxList, bool IsFirstPage, bool IsLastPage) { if (Indecator != null) { Indecator.SetActive(false); } if (dataList.Length <= 0) { return; } //create item detail for (int i = 0; i < dataList.Length; i++) { dataList[i].IsFav = PageDetailGlobal.IsFavourite(dataList[i].dataid); dataList[i].IsLike = PageDetailGlobal.GetLikeAlready(dataList[i].dataid); GameObject itemDetail = (GameObject)GameObject.Instantiate(ShelfItem); itemDetail.transform.parent = ShelfList.transform; itemDetail.transform.localPosition = new Vector3(0 + i * DetailLength, 0, 0); float size = ((ScaleItemRate + 4) - Mathf.Abs(itemDetail.transform.localPosition.x)) / (ScaleItemRate + 4); itemDetail.transform.localScale = new Vector3(size, size, 1); // itemDetail.renderer.sortingOrder = 10-(int)Mathf.Abs(itemDetail.transform.localPosition.x*100); ItemDetail idt = itemDetail.GetComponent <ItemDetail>(); idt.SetSortingOrder(10 - (int)Mathf.Abs(itemDetail.transform.localPosition.x * 100)); idt.texture.AddDownloadTexture(dtxList[i]); idt.SetContentData(dataList[i]); ShelfItemList.Add(itemDetail); } //create arrow item //set position PrevPageArrow.transform.localPosition = new Vector3(-1 + -DetailLength, 0, 0); NextPageArrow.transform.localPosition = new Vector3(1 + dataList.Length * DetailLength, 0, 0); if (!IsFirstPage) { PrevPageArrow.gameObject.SetActive(true); } else { PrevPageArrow.gameObject.SetActive(false); } if (!IsLastPage) { NextPageArrow.gameObject.SetActive(true); } else { NextPageArrow.gameObject.SetActive(false); } currentShelfIndex = 0; content.SetContent(ShelfItemList [currentShelfIndex].GetComponent <ItemDetail> ().cData); content.ShowContent(); }
IEnumerator SnappingItem() { if (ShelfItemList.Count <= 0) { yield break; } while (!SnappingMorph.IsFinish()) { SnappingMorph.Update(); ItemMoveMent = SnappingMorph.val; if (ItemMoveMent > 0) { ItemMoveMent = 0; } if (ItemMoveMent < -(DetailLength * (ShelfItemList.Count - 1))) { ItemMoveMent = -DetailLength * (ShelfItemList.Count - 1); } currentShelfIndex = (int)(-(ItemMoveMent - (DetailLength / 2.0f)) / DetailLength); for (int i = 0; i < ShelfItemList.Count; i++) { ShelfItemList [i].transform.localPosition = new Vector3(ItemMoveMent + i * DetailLength, 0, 0); float size = ((ScaleItemRate + 4) - Mathf.Abs(ShelfItemList [i].transform.localPosition.x)) / (ScaleItemRate + 4); ShelfItemList [i].transform.localScale = new Vector3(size, size, 1); ItemDetail idt = ShelfItemList [i].GetComponent <ItemDetail>(); idt.SetSortingOrder(10 - (int)Mathf.Abs(ShelfItemList [i].transform.localPosition.x * 100)); } PrevPageArrow.transform.localPosition = new Vector3(-1 + ItemMoveMent + -DetailLength, 0, 0); NextPageArrow.transform.localPosition = new Vector3(1 + ItemMoveMent + ShelfItemList.Count * DetailLength, 0, 0); yield return(0); } content.SetContent(ShelfItemList [currentShelfIndex].GetComponent <ItemDetail> ().cData); content.ShowContent(); //show IndexItem }