public override void OnInspectorGUI() { weaponSystem = target as WeaponSystem; serializedObject.Update(); groupList.DoLayoutList(); firepointList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); if (GUILayout.Button("Refresh Firepoints")) { weaponSystem.CollectWeaponGroups(); } if (GUILayout.Button("Sort Firepoints")) { weaponSystem.firepoints.Sort(delegate(Firepoint a, Firepoint b) { return a.name.CompareTo(b.name); }); } }
private void OnEnable() { weaponSystem = target as WeaponSystem; weaponSystem.CollectWeaponGroups(); firepointList = new ReorderableList(serializedObject, serializedObject.FindProperty("firepoints"), true, true, true, true); firepointList.drawElementCallback += DrawFirepoint; firepointList.drawHeaderCallback += DrawHeaderCallback; firepointList.onAddCallback += AddFirepoint; firepointList.onSelectCallback += SelectFirepoint; groupList = new ReorderableList(serializedObject, serializedObject.FindProperty("weaponGroups"), true, true, true, true); groupList.elementHeight = EditorGUIUtility.singleLineHeight; groupList.drawElementCallback += DrawWeaponGroup; groupList.drawHeaderCallback += DrawWeaponGroupHeader; groupList.onAddCallback += AddGroup; groupList.onCanRemoveCallback += CanRemoveGroup; groupList.onRemoveCallback += RemoveGroup; weaponGroupNames = new List<string>(); for (int i = 0; i < weaponSystem.weaponGroups.Count; i++) { weaponGroupNames.Add(weaponSystem.weaponGroups[i].groupId); } }