private void ResetShowDetailEffect() { for (int i = startRow - 1; i < endRow + 1; i++) { for (int j = 0; j < m_Column; j++) { UIImageItem uIImageItem = GetItem(i, j); RectTransform rect = uIImageItem.GetComponent <RectTransform>(); float x = rect.anchoredPosition.x; float y = 0; if (j >= startColumn && j <= endColumn + 1) { //if (i <= middleRow) // y = rect.anchoredPosition.y - 4 * (m_ImageItemHeight + m_ImageSpace); //else // y = rect.anchoredPosition.y + 4 * (m_ImageItemHeight + m_ImageSpace); } else { y = -i * (m_ImageItemHeight + m_ImageSpace); } uIImageItem.SetPosition(uIImageItem.GetComponent <RectTransform>().anchoredPosition, new Vector2(x, y), 0.2f); } } isEffect = false; }
// set game data when loading windows void SetData(object[] args) { GameType game = (GameType)args [0]; labelTitle.text = game.title; // название // картинки foreach (Sprite image in game.images) { UIImageItem item = Lib.AddObject <UIImageItem>(prefImage, rootImages); item.SetData(image); } }
private void OnItemClicked(ItemData data) { if (data == null) { return; } UIImageItem uIImageItem = m_UIImageItems[data]; if (uIImageItem != null) { //显示详情 CloseDetailPanel(); SetDetailImage(); } }
private void CreateImageItem(int index, Texture2D texture) { var curRow = index / m_Column; var itemData = m_ItemDatas[index]; UIImageItem uIImageItem = Instantiate(m_UIImageItem, transform); uIImageItem.gameObject.SetActive(true); uIImageItem.Init(itemData); uIImageItem.SetImage(texture); uIImageItem.SetText(index.ToString()); uIImageItem.SetSize(m_ImageItemWidth, m_ImageItemHeight); uIImageItem.SetPosition(new Vector2(Screen.width, -curRow * (m_ImageItemHeight + m_ImageSpace)), itemData.position); uIImageItem.OnImageItemClicked = OnItemClicked; m_UIImageItems.Add(itemData, uIImageItem); }
private void Awake() { this.m_Width = Screen.width; this.m_Height = Screen.height; m_UIImageItem = transform.Find("ImageItem").GetComponent <UIImageItem>(); if (m_UIImageItem) { m_UIImageItem.gameObject.SetActive(false); } m_CenterImage = transform.Find("CenterImage"); if (m_CenterImage) { m_CenterImage.gameObject.SetActive(false); } }
private void SetSpecialItemEffect() { isMoveFinished = false; for (int i = startRow; i <= endRow; i++) { index = curStartIndex; int finishedCount = 0; for (int j = startColumn; j <= endColumn + 1; j++) { index = index > m_Column - 1 ? 0 : index; UIImageItem curItem = GetItem(i, index); RectTransform curRect = curItem.GetComponent <RectTransform>(); //curItem.GetComponentInChildren<RawImage>().color = Color.red; curItem.transform.SetAsLastSibling(); Vector2 targetPos = GetTargetPosition(i, j - 1); Vector3 dir = Vector3.Normalize(targetPos - curRect.anchoredPosition); curRect.Translate(new Vector2(0, dir.y) * moveSpeed * Time.deltaTime); if (Vector3.Distance(curRect.anchoredPosition, targetPos) <= 0.1f) { curRect.anchoredPosition = targetPos; isMoveFinished = true; finishedCount++; } index++; } if (isMoveFinished && i == endRow) { curStartIndex++; curStartIndex = curStartIndex > m_Column - 1 ? 0 : curStartIndex; } } }
private void SetHorizontalEffect() { for (int i = 0; i < m_Row; i++) { for (int j = 0; j < m_Column; j++) { UIImageItem curItem = GetItem(i, j); RectTransform curRect = curItem.GetComponent <RectTransform>(); //移动X轴 curRect.Translate(new Vector2(-1, 0) * Time.deltaTime * moveSpeed); //当X轴移动到最左边时,对象更新位置到最右边 if (curRect.anchoredPosition.x <= -curRect.sizeDelta.x) { curRect.anchoredPosition = new Vector2(Screen.width, curItem.OriginPos.y); } } } }
private void SetShowDetailEffect() { if (isEffect) { return; } for (int i = startRow - 2; i < endRow + 2; i++) { for (int j = 0; j < m_Column; j++) { float yMin = -2 * (m_ImageItemHeight + m_ImageSpace); float yMax = +2 * (m_ImageItemHeight + m_ImageSpace); if (j >= startColumn && j <= endColumn + 1) { UIImageItem uIImageItem = GetItem(i, j); RectTransform rect = uIImageItem.GetComponent <RectTransform>(); float x = rect.anchoredPosition.x, y = 0; if (i <= middleRow) { y = rect.anchoredPosition.y + yMax; } else { y = rect.anchoredPosition.y - yMin; } uIImageItem.SetPosition(uIImageItem.GetComponent <RectTransform>().anchoredPosition, new Vector2(x, y), 0.2f); } else { float y = UnityEngine.Random.Range(yMin, yMax); } } } isEffect = true; }