public void InitBaseClassInfo() { if (type.BaseType != typeof(object) && type.BaseType != typeof(UnityEngine.Object)) { baseClassInfo = new ClassData(instance, type.BaseType, level + 1); } }
public void RefreshValue(ClassData info) { classInfo = info; }
public ObjectData(object value, Type type, string name, GetValueHandle getValueHandler, SetValueHandle setValueHandler, bool isInit, int index) { this.value = value; this.type = type; this.name = name; this.getValueHandler = getValueHandler; this.setValueHandler = setValueHandler; level = index; originalValue = value; if (isInit) { Init(); } //支持类型 if (TypeTool.IsSupported(type)) { return; } //定制化类型 if (type.IsArray && type.GetArrayRank() == 1) { arrayData = new ArrayData(this.value, this.type, this.name, this.getValueHandler, this.setValueHandler); return; } if (TypeTool.IsList(type)) { listData = new ListData(this.value, this.type, this.name, this.getValueHandler, this.setValueHandler); return; } //不进一步解析Unity自带类型 if (type.Namespace != null && type.Namespace.Contains("UnityEngine")) { return; } if (type.IsArray) { //不解析非一维数组 } else if (TypeTool.IsDictionary(type)) { //不解析字典 } else if (type == typeof(object)) { //不解析object } else { //最多迭代10层 if (level >= 10) { return; } //Debug.LogError(name); //Debug.LogError(type.Name); classData = new ClassData(this.value, this.type, level + 1); } }