public static void MenuCallback(object callbackObject) { MenuUtils.MenuCallbackObject menuCallbackObject = callbackObject as MenuUtils.MenuCallbackObject; if (menuCallbackObject.onBeforeExecuteCallback != null) { menuCallbackObject.onBeforeExecuteCallback(menuCallbackObject.menuItemPath, menuCallbackObject.temporaryContext, menuCallbackObject.userData); } if (menuCallbackObject.temporaryContext != null) { EditorApplication.ExecuteMenuItemWithTemporaryContext(menuCallbackObject.menuItemPath, menuCallbackObject.temporaryContext); } else { EditorApplication.ExecuteMenuItem(menuCallbackObject.menuItemPath); } if (menuCallbackObject.onAfterExecuteCallback != null) { menuCallbackObject.onAfterExecuteCallback(menuCallbackObject.menuItemPath, menuCallbackObject.temporaryContext, menuCallbackObject.userData); } }