示例#1
0
// ~~ private

// ~ Non-Static

// ~~ public
    public void Refresh(
        IAttributeData aData   = null,
        IPortraitData pData    = null,
        IDescriptionData dData = null
        )
    {
        Clear();

        _rootFlexRect = ColumnGridFlexibleRect.GetRect(ViewData, 2);
        _rootFlexRect.transform.SetParent(ContentRect.transform, false);

        bool showPortrait    = pData == null ? false : true;
        bool showAttributes  = aData == null ? false : true;
        bool showDescription = dData == null ? false : true;

        if (showPortrait)
        {
            RefreshPortrait(pData, _rootFlexRect);
        }

        if (showAttributes)
        {
            RefreshAttributes(aData, _rootFlexRect);
        }

        if (showDescription)
        {
            RefreshDescription(dData, _rootFlexRect);
        }

        _rootFlexRect.Refresh();
    }
示例#2
0
// ~~ private
    private void RefreshAttributes(IAttributeData data, ColumnGridFlexibleRect root)
    {
        VerticalFlexibleRect child = VerticalFlexibleRect.GetRect(ViewData);

        child.transform.SetParent(root.transform, false);

        foreach (KeyValuePair <string, float[]> pair in data.AttributeDictionary)
        {
            HorizontalFlexibleRect grandchild = HorizontalFlexibleRect.GetRect(ViewData);
            grandchild.transform.SetParent(child.transform, false);

            GameObject keyLeafObj = new GameObject(pair.Key.ToString());
            Text       keyText    = keyLeafObj.AddComponent <Text>();
            keyText.font     = UnityBuiltin.Font("Arial");
            keyText.text     = pair.Key;
            keyText.color    = Color.black;
            keyText.fontSize = (int)TextConstants.BODY_TEXT_SIZE;

            keyLeafObj.transform.SetParent(grandchild.transform, false);

            GameObject valueLeafObj = new GameObject(pair.Value.ToString());
            Text       valueText    = valueLeafObj.AddComponent <Text>();
            valueText.font     = UnityBuiltin.Font("Arial");
            valueText.text     = pair.Value[0].ToString();
            valueText.color    = Color.black;
            valueText.fontSize = (int)TextConstants.BODY_TEXT_SIZE;

            valueLeafObj.transform.SetParent(grandchild.transform, false);
        }
    }
示例#3
0
    private void RefreshPortrait(IPortraitData data, ColumnGridFlexibleRect root)
    {
        GameObject leafObj  = new GameObject("Portrait");
        Image      portrait = leafObj.AddComponent <Image>();

        portrait.sprite = data.Portrait;
        leafObj.transform.SetParent(root.transform, false);
    }
示例#4
0
    private void RefreshDescription(IDescriptionData data, ColumnGridFlexibleRect root)
    {
        GameObject leafObj         = new GameObject("Description");
        Text       descriptionText = leafObj.AddComponent <Text>();

        descriptionText.text  = data.Description;
        descriptionText.color = Color.black;
        descriptionText.font  = UnityBuiltin.Font("Arial");
        leafObj.transform.SetParent(root.transform, false);
    }
示例#5
0
    public static ColumnGridFlexibleRect GetRect(ViewData viewData, int constraintCount)
    {
        GameObject             result     = new GameObject("ColumnGridViewRect");
        ColumnGridFlexibleRect resultMono = result.AddComponent <ColumnGridFlexibleRect>();

        resultMono.ViewData = viewData;
        resultMono.BGColor  = new Color(0f, 0f, 0f, 0f);
        resultMono.GridLayoutGroup.constraint      = ConstraintType;
        resultMono.GridLayoutGroup.constraintCount = constraintCount;
        return(resultMono);
    }