Beispiel #1
0
    void SetupParseableContent()
    {
        parserList.Clear();
        //destroy existing children
        for (int i = 0; i < scrollRect.content.childCount; i++)
        {
            Destroy(scrollRect.content.GetChild(i).gameObject);
        }

        //setup new
        BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
                             BindingFlags.Static | BindingFlags.Instance |
                             BindingFlags.DeclaredOnly;

        FieldInfo[] fields = chosenType.GetFields(flags);

        foreach (FieldInfo field in fields)
        {
            ParserTypeAttribute att = field.GetCustomAttribute <ParserTypeAttribute>();

            if (att == null)//no at no inputing
            {
                continue;
            }

            GameObject obj = Instantiate(parserPrefb, scrollRect.content);

            Parser p = obj.GetComponent <Parser>();
            p.Initialize(att);
            parserList.Add(p);
        }
        //set content size
        scrollRect.content.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, scrollRect.content.childCount * (parserPrefb.transform as RectTransform).rect.height);
    }
Beispiel #2
0
    public void Initialize(ParserTypeAttribute type)
    {
        parserName.text = type.DisplayName;
        switch (type.Type)
        {
        case ParserTypeAttribute.ParseableTypes.FLOAT:
            inputField.characterValidation = InputField.CharacterValidation.Decimal;
            break;

        case ParserTypeAttribute.ParseableTypes.INTEGER:
            inputField.characterValidation = InputField.CharacterValidation.Integer;
            break;

        case ParserTypeAttribute.ParseableTypes.STRING:
            inputField.characterValidation = InputField.CharacterValidation.Alphanumeric;
            break;

        default:
            throw new System.Exception("Can't parse value type");
        }
    }