Compare commits

...

3 Commits

View File

@ -10,6 +10,8 @@ namespace NegUtils.Editor
[InitializeOnLoad] [InitializeOnLoad]
public class ToolsWindowBase : EditorWindow public class ToolsWindowBase : EditorWindow
{ {
private const int UnitySceneExtensionLength = 6;
static ToolsWindowBase() static ToolsWindowBase()
{ {
EditorApplication.playModeStateChanged += OnPlayModeStateChanged; EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
@ -57,17 +59,31 @@ namespace NegUtils.Editor
var menu = new GenericMenu(); var menu = new GenericMenu();
string path = Application.dataPath + "/Scenes/Production"; string path = Application.dataPath + "/Scenes/Production";
string[] fileInfo = Directory.GetFiles(path, "*.unity");
foreach (string item in fileInfo) AddFiles(path, path, menu);
menu.DropDown(position);
}
private static void AddFiles(string path, string basePath, GenericMenu menu)
{ {
string s = item; string[] fileInfo = Directory.GetFiles(path, "*.unity");
menu.AddItem(new GUIContent(s.Remove(0, path.Length + 1).Remove(s.Length - path.Length - 7 ,6)), false, () => { for (int i = 0; i < fileInfo.Length; i++)
{
string s = fileInfo[i];
menu.AddItem(new GUIContent(s.Remove(0, basePath.Length + 1).Remove(s.Length - basePath.Length - UnitySceneExtensionLength - 1 ,UnitySceneExtensionLength).Replace('\\', '/')), false, () => {
LoadScene(s); LoadScene(s);
}); });
if(i == fileInfo.Length) continue;
menu.AddSeparator(""); menu.AddSeparator("");
} }
menu.DropDown(position);
string[] dirInfo = Directory.GetDirectories(path);
foreach (string dir in dirInfo)
{
AddFiles(dir, basePath, menu);
}
} }
private static void LoadScene(string path) private static void LoadScene(string path)