public void UpdateFields() { if (EditorApplication.timeSinceStartup - lastTime < 1.0 || attachedType == null) { return; } //UpdateFilePath(); int count = -1; Type t = attachedType; FieldInfo[] fields = t.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); List <string> varsCollected = new List <string>(); InspectorPlusSummary s = new InspectorPlusSummary(); s.ReadSummaries(filePath); foreach (FieldInfo fieldInfo in fields) { if (ignoredProperties.Contains(fieldInfo.Name)) { continue; } if (fieldInfo.IsPrivate && !fieldInfo.IsDefined(typeof(SerializeField), false)) { continue; } if (fieldInfo.IsDefined(typeof(HideInInspector), false)) { continue; } ++count; varsCollected.Add(fieldInfo.Name); if (varsHad.Contains(fieldInfo.Name)) { continue; } if (!first) { varsHad.Insert(count, fieldInfo.Name); } else { varsHad.Add(fieldInfo.Name); } InspectorPlusVar newVar = new InspectorPlusVar(); newVar.name = fieldInfo.Name; newVar.SetDispName(); newVar.type = fieldInfo.FieldType.Name; newVar.isArray = fieldInfo.FieldType.IsArray; newVar.classType = attachedType.Name; if (!first) { vars.Insert(count, newVar); } else { vars.Add(newVar); } } foreach (FieldInfo fieldInfo in fields) { string newTooltip = s.GetSummary(fieldInfo.Name); InspectorPlusVar ipv = vars.Find(delegate(InspectorPlusVar i) { return(i.name == fieldInfo.Name); }); if (ipv == null) { continue; } if (fieldInfo.IsDefined(typeof(InspectorTip), false)) { object[] tips = fieldInfo.GetCustomAttributes(typeof(InspectorTip), false); newTooltip = ((InspectorTip)tips[tips.Length - 1]).tip; } if (newTooltip != "") { ipv.hasTooltip = true; ipv.tooltip = newTooltip; ipv.fixedTip = true; } else { ipv.fixedTip = false; } } vars.RemoveAll(delegate(InspectorPlusVar v) { return(!varsCollected.Contains(v.name)); }); varsHad.RemoveAll(delegate(string n) { return(!varsCollected.Contains(n)); }); lastTime = EditorApplication.timeSinceStartup; first = false; }
public void UpdateFields() { if (EditorApplication.timeSinceStartup - lastTime < 1.0 || attachedType == null) return; //UpdateFilePath(); int count = -1; Type t = attachedType; FieldInfo[] fields = t.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); List<string> varsCollected = new List<string>(); InspectorPlusSummary s = new InspectorPlusSummary(); s.ReadSummaries(filePath); foreach (FieldInfo fieldInfo in fields) { if (ignoredProperties.Contains(fieldInfo.Name)) continue; if (fieldInfo.IsPrivate && !fieldInfo.IsDefined(typeof(SerializeField), false)) continue; if (fieldInfo.IsDefined(typeof(HideInInspector), false)) continue; ++count; varsCollected.Add(fieldInfo.Name); if (varsHad.Contains(fieldInfo.Name)) continue; if (!first) varsHad.Insert(count, fieldInfo.Name); else varsHad.Add(fieldInfo.Name); InspectorPlusVar newVar = new InspectorPlusVar(); newVar.name = fieldInfo.Name; newVar.SetDispName(); newVar.type = fieldInfo.FieldType.Name; newVar.isArray = fieldInfo.FieldType.IsArray; newVar.classType = attachedType.Name; if (!first) vars.Insert(count, newVar); else vars.Add(newVar); } foreach (FieldInfo fieldInfo in fields) { string newTooltip = s.GetSummary(fieldInfo.Name); InspectorPlusVar ipv = vars.Find(delegate(InspectorPlusVar i) { return i.name == fieldInfo.Name; }); if (ipv == null) continue; if (fieldInfo.IsDefined(typeof(InspectorTip), false)) { object[] tips = fieldInfo.GetCustomAttributes(typeof(InspectorTip), false); newTooltip = ((InspectorTip)tips[tips.Length - 1]).tip; } if (newTooltip != "") { ipv.hasTooltip = true; ipv.tooltip = newTooltip; ipv.fixedTip = true; } else ipv.fixedTip = false; } vars.RemoveAll(delegate(InspectorPlusVar v) { return (!varsCollected.Contains(v.name)); }); varsHad.RemoveAll(delegate(string n) { return (!varsCollected.Contains(n)); }); lastTime = EditorApplication.timeSinceStartup; first = false; }