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