public void OnEnable() { if (target == null) { return; } isoSwitches = target as IsoSwitches; switchList = new ReorderableList(isoSwitches.switches, typeof(ISwitch), true, false, true, true); switchList.elementHeight = 35; switchList.drawElementCallback += (rect, index, isActive, isFocused) => { var isw = switchList.list[index] as ISwitch; EditorGUI.BeginChangeCheck(); isw.id = EditorGUI.TextField(new Rect(rect.x, rect.y, rect.width, rect.height / 2f - 2f), "ID ", isw.id); isw.State = ParamEditor.editorFor(new Rect(rect.x, rect.y + rect.height / 2f, rect.width, rect.height / 2f - 2f), isw.State); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(isw); } }; switchList.onRemoveCallback += (list) => { isoSwitches.removeSwitch(isoSwitches.switches[list.index]); }; switchList.onAddCallback += (list) => { var isw = isoSwitches.addSwitch(); isw.id = search; }; }