private void CreateMenu(object sender, AddMenuClickedEventArgs args) { GameDatabase db = GameDatabase.ActiveInstance; IReadonlyListX <BehaviorSet> behaviorSets = db.GetAssetList <BehaviorSet>(); GenericMenu menu = new GenericMenu(); for (int i = 0; i < behaviorSets.Count; i++) { GUIContent content = new GUIContent($"Add {behaviorSets[i].name}"); BehaviorSet bs = behaviorSets[i]; menu.AddItem(content, false, () => { propertyAsList.AddElement(bs); }); } menu.ShowAsContext(); }
protected override void CreateMenu(object sender, AddMenuClickedEventArgs args) { Type[] subClasses = EditorReflector.FindSubClasses <Goal>(); GenericMenu menu = new GenericMenu(); for (int i = 0; i < subClasses.Length; i++) { Type type = subClasses[i]; if (!EditorReflector.IsDefaultConstructable(type)) { continue; } GUIContent content = new GUIContent($"Create {type.Name}"); menu.AddItem(content, false, CreateGoal, type); } menu.ShowAsContext(); }
protected override void CreateMenu(object sender, AddMenuClickedEventArgs args) { Type[] subClasses = EditorReflector.FindSubClasses <AIAction>(); GenericMenu menu = new GenericMenu(); for (int i = 0; i < subClasses.Length; i++) { Type type = subClasses[i]; if (!EditorReflector.IsDefaultConstructable(type)) { continue; } GUIContent content = new GUIContent($"Create {StringUtil.NicifyName(type.Name, "Action")}"); menu.AddItem(content, false, () => { propertyAsList.AddElement(EditorReflector.MakeInstance(type)); }); } menu.ShowAsContext(); }
protected virtual void OnAddMenuClicked(object sender, AddMenuClickedEventArgs args) { }
protected virtual void CreateMenu(object sender, AddMenuClickedEventArgs args) { }