- Home /
Is MenuItem supported anymore?
I'm following a tutorial on creating scripts to add a menu item in the GameObject menu in the Editor toolbar. Looking up the API, however, doesn't show the MenuItem class - the class the instructor is prompting viewers to use - except when searching the class up in the search engine on the API website.
Regardless, I tried following the tutorial along the way in another programming language (I was using C#; he used JavaScript). However, when I added the code necessary to add a MenuItem, the keyword wasn't supported in editor I was using. Here's what the editor shows:
Does this mean the MenuItem class is not supported any longer? And if so, what is an alternative way of adding a menu item to menus in the Editor toolbar?
Answer by Crazydadz · Nov 02, 2012 at 09:49 PM
Hi Rxanadu, you need to import UnityEditor example:
using UnityEngine;
using UnityEditor;
using System.IO;
//Generate Folders in our project
namespace Assets.Editor.Menu
{
public class FolderSetup
{
//Add menu item
[MenuItem("Project Tools/FolderSetup")]
//Init
private static void Init()
{
GenerateFolders();
}
//Generate folder and names
private static void GenerateFolders()
{
var projectPath = Application.dataPath + "/"; //Store project Path
//Create folders
Directory.CreateDirectory(projectPath + "Audio");
Directory.CreateDirectory(projectPath + "Fonts");
Directory.CreateDirectory(projectPath + "Materials");
Directory.CreateDirectory(projectPath + "Meshes");
Directory.CreateDirectory(projectPath + "Prefabs");
Directory.CreateDirectory(projectPath + "Resources");
Directory.CreateDirectory(projectPath + "Scenes");
Directory.CreateDirectory(projectPath + "Scripts");
Directory.CreateDirectory(projectPath + "Textures");
AssetDatabase.Refresh(); //Refresh Project folder in editor
}
}
}
I can't test it right now, but that the way i was doing menuitem!
Answer by Rxanadu · Nov 03, 2012 at 05:01 PM
It works! I take it the Init() function is needed for this to work (i.e. for GenerateFolders() to be called at all). Is there an alternate way in doing this? I'm new to C#, so I'm guessing Init() functions similarly to main() in Java. Am I correct in saying this?
It doesn't have to be named anything in particular. It only matters that the function is the next line after that $$anonymous$$enuItem declaration.
Your answer
Follow this Question
Related Questions
IN-GAME Menu Items 0 Answers
Initialising List array for use in a custom Editor 1 Answer
Creating Scenes Programmatically From A Deployed Build in Unity 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers