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