using System;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneEditor : EditorWindow {
Vector2 scrobar2 = Vector2.zero;
[MenuItem("Tools/scene &s")]
static void ShowWindow()
{
GetWindow(typeof(SceneEditor), false, "切换场景");
}
void OnGUI()
{
scrobar2 = GUILayout.BeginScrollView(scrobar2, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
int sceneCount = SceneManager.sceneCountInBuildSettings;
string[] names=new string [sceneCount];
for (int i = 0; i < sceneCount; i++)
{
string scenePath = SceneUtility.GetScenePathByBuildIndex(i);
string name = (scenePath.Substring(scenePath.LastIndexOf("/") + 1,
scenePath.Length - scenePath.LastIndexOf("/") - 1));
names[i] = name;
}
Array.Sort(names);
for (int i = 0; i < sceneCount; i++)
{
if (i % 2 == 0)
{
GUI.color = Color.white;
}
else if (i % 2 == 1)
{
GUI.color = Color.red;
}
if (GUILayout.Button(names[i], GUILayout.ExpandWidth(true), GUILayout.Height(50)))
{
EditorSceneManager.SaveOpenScenes();
//获取点击场景所在的路径
string scenePath2;
for (int j = 0; j < sceneCount; j++)
{
scenePath2 = SceneUtility.GetScenePathByBuildIndex(j);
if (!string.IsNullOrEmpty (scenePath2) && scenePath2.Contains(names[i]))
{
EditorSceneManager.OpenScene(scenePath2);
}
}
}
}
GUILayout.EndScrollView();
}
}