void DisplayShooterGraphMenu() { GenericMenu menu = new GenericMenu(); foreach (System.Reflection.Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type type in asm.GetTypes()) { if (type.BaseType == typeof(DMKBulletShooter)) { menu.AddItem(new GUIContent("New Shooter/" + DMKUtil.GetTypeClassName(type)), false, OnAddShooterClicked, type); } } } foreach (System.Reflection.Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type type in asm.GetTypes()) { if (type.BaseType == typeof(DMKShooterModifier)) { menu.AddItem(new GUIContent("New Modifier/" + DMKUtil.GetTypeClassName(type)), false, OnAddModifierClicked, type); } } } menu.ShowAsContext(); }
void DisplayShooterToolsMenu(bool isSubShooter) { GenericMenu menu = new GenericMenu(); DMKBulletShooterController shooterController = selectedGraphObject as DMKBulletShooterController; if (!shooterController) { return; } menu.AddItem(new GUIContent("Link Modifier"), false, OnShooterMenuCreateLinkClicked); if (shooterController.subController == null) { foreach (System.Reflection.Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type type in asm.GetTypes()) { if (type.BaseType == typeof(DMKBulletShooter)) { menu.AddItem(new GUIContent("New Sub-Shooter/" + DMKUtil.GetTypeClassName(type)), false, OnShooterMenuAddSubShooterClicked, type); } } } } if (!isSubShooter) { foreach (System.Reflection.Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) { foreach (Type type in asm.GetTypes()) { if (type.BaseType == typeof(DMKTrigger)) { menu.AddItem(new GUIContent("New Trigger/" + DMKUtil.GetTypeClassName(type)), false, OnAddTriggerClicked, type); } } } } menu.AddSeparator(""); menu.AddItem(new GUIContent("Copy"), false, OnShooterMenuCopyClicked); if (copiedShooter != null && copiedShooter != selectedGraphObject) { menu.AddItem(new GUIContent("Paste"), false, OnShooterMenuPasteClicked); } else { menu.AddDisabledItem(new GUIContent("Paste")); } if (copiedShooter != null) { menu.AddItem(new GUIContent("Paste as New"), false, OnShooterMenuPasteAsNewClicked); } menu.AddSeparator(""); menu.AddItem(new GUIContent("Remove"), false, OnShooterMenuRemoveClicked, isSubShooter.ToString()); menu.ShowAsContext(); }