Exemplo n.º 1
0
    public void SetUpGrid()
    {
        DeleteAllChildren();
        float yMin    = 0.0f;
        float yOffset = 1.0f / m_rows;
        float xOffset = 1.0f / m_columns;

        for (int i = 0; i < m_rows; i++)
        {
            float xMin = 0.0f;
            for (int j = 0; j < m_columns; j++)
            {
                RectTransform rect = Object.Instantiate(m_gridElement, this.transform).GetComponent <RectTransform>();
                rect.anchorMin = new Vector2(xMin, yMin);
                rect.anchorMax = new Vector2(xMin + xOffset, yOffset + yMin);
                xMin          += xOffset;

                if (!string.IsNullOrEmpty(m_buttonMsgFormat))
                {
                    string message = string.Format(m_buttonMsgFormat, j, i);
                    UIButtonInteraction interaction = rect.GetComponent <UIButtonInteraction>();
                    interaction.message = message;
                    interaction.name    = message;
                }
            }
            yMin += yOffset;
        }
    }
Exemplo n.º 2
0
    public void BuildGridElements(List <GridElementData> gridElements, int pageNumber)
    {
        m_gridTransform.DestroyAllChildren();
        if (gridElements == null || gridElements.Count == 0)
        {
            return;
        }

        GameObject gridPrefab = Resources.Load <GameObject>("UIGridElement");
        float      yMaxAnchor = 1.0f;

        for (int rowIndex = 0, gridIndex = pageNumber * k_elementsPerGrid; rowIndex < k_elementsInColumn; rowIndex++)
        {
            float xMinAnchor = 0.0f;
            for (int columnIndex = 0; columnIndex < k_elementsInRow; columnIndex++)
            {
                RectTransform element = Object.Instantiate(gridPrefab, m_gridTransform).GetComponent <RectTransform>();
                element.name = $"Element_{gridIndex}";

                Image image = element.GetComponent <Image>();
                image.color = gridElements[gridIndex].IsExpense ? k_expenseColor : k_incomeColor;

                UIButtonInteraction buttonInteraction = element.GetComponent <UIButtonInteraction>();
                buttonInteraction.m_message = k_selectElementMsg + gridIndex;

                TextMeshProUGUI text = element.gameObject.GetComponentFromChild <TextMeshProUGUI>("Text");
                text.text = $"{gridElements[gridIndex].m_variableName}:\n{gridElements[gridIndex].m_variableValue.ToString("C", CultureInfo.CurrentCulture)}";

                element.anchorMin = new Vector2(xMinAnchor, yMaxAnchor - k_columnElementSize);
                element.anchorMax = new Vector2(xMinAnchor + k_rowElementSize, yMaxAnchor);

                xMinAnchor += k_rowElementSize + k_rowSpacing;
                gridIndex++;
                if (gridIndex >= gridElements.Count)
                {
                    return;
                }
            }
            yMaxAnchor -= k_columnElementSize + k_columnSpacing;
        }
    }