unity 查找所有场景
该脚本应该挂载在 场景中不会被销毁的物体上
回来补充下 该脚本需要放到 Editor文件夹下
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// 自动查找场景 并创建以场景命名的Button 点击按钮 变可以切换场景
/// </summary>
public class changeScenes : MonoBehaviour
{
[HideInInspector]
public List<string> nameList;
public Vector2 scrollPosition;
// Start is called before the first frame update
void Start()
{
SearchSenes();
}
void OnGUI()
{
scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(300), GUILayout.Height(Screen.height));
foreach (var item in nameList)
{
if (GUILayout.Button(item))
{
changeScene(item);
}
}
GUILayout.EndScrollView();
}
void SearchSenes()
{
nameList = new List<string>();
foreach (UnityEditor.EditorBuildSettingsScene S in UnityEditor.EditorBuildSettings.scenes)
{
string scenesName = S.path;
string[] Name = scenesName.Split('/');
foreach (var item in Name)
{
if (item.Contains(".unity"))
{
nameList.Add(item.Substring(0, item.IndexOf('.')));
}
}
}
}
void changeScene(string name)
{
SceneManager.LoadScene(name);
}
}