예제 #1
0
    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);
        }
    }
예제 #3
0
    private void OnItemClicked(ItemData data)
    {
        if (data == null)
        {
            return;
        }
        UIImageItem uIImageItem = m_UIImageItems[data];

        if (uIImageItem != null)
        {
            //显示详情
            CloseDetailPanel();
            SetDetailImage();
        }
    }
예제 #4
0
    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);
    }
예제 #5
0
    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);
        }
    }
예제 #6
0
    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;
            }
        }
    }
예제 #7
0
 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);
             }
         }
     }
 }
예제 #8
0
    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;
    }