private void OnEnable() { this._skillInfoAsset = target as SkillInfoAsset; this.triggerListProp = serializedObject.FindProperty("triggers"); this.skillNameProp = serializedObject.FindProperty("skillName"); this.triggerList = new ReorderableList(serializedObject, triggerListProp, true, true, true, true); this.triggerList.elementHeight = 2 * EditorGUIUtility.singleLineHeight; triggerList.drawElementCallback = (rect, index, isActive, isFocused) => { var triggerProp = triggerListProp.GetArrayElementAtIndex(index); EditorGUI.PropertyField(rect, triggerProp); }; triggerList.onSelectCallback = (list) => { this.selectIndex = list.index; }; triggerList.drawHeaderCallback = (rect) => EditorGUI.LabelField(rect, "触发器"); triggerList.onAddDropdownCallback = (rect, list) => { var menu = new GenericMenu(); var enumIndex = -1; foreach (var value in EnumUtil.GetValues <TriggerType>()) { enumIndex++; menu.AddItem(new GUIContent(((TriggerType)value).ToString()), false, OnAddUnitCallBack, enumIndex); } menu.ShowAsContext(); }; }
/// <summary> /// 执行技能 /// </summary> /// <param name="skillInfoAsset"></param> public void RunSkill(SkillInfoAsset skillInfoAsset) { skillInfoAsset.RunSkill(this); }