csharp 统一のシーンファイルリストウィンドウ。全てのシーン,ビルド登录シーンを切り替え可。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 统一のシーンファイルリストウィンドウ。全てのシーン,ビルド登录シーンを切り替え可。相关的知识,希望对你有一定的参考价值。

/// <summary>
/// Scene List Editor Window
/// @author Shunsuke Ohba
/// </summary>

using UnityEngine;
using UnityEditor;
using System.IO;
using System.Collections;
using System.Collections.Generic;

namespace Baobao.Editor
{
	public class SceneList : EditorWindow 
	{
		private List<FileInfo> FileList;
		private bool IsUpdate;
		private bool IsAllScene;
		private Vector2 scrollPos;
		
		[MenuItem ("Window/Scene List")]
		static void Init ()
		{
			EditorWindow w = EditorWindow.GetWindow<SceneList> ();
			w.Show ();
			w.title = "Scene list";
		}
		
		void OnGUI ()
		{
			if (IsUpdate) 
			{
				FileList = new List<FileInfo> ();
				// 取得するシーンの切り替え
				if (!IsAllScene)
				{
					foreach (var scene in EditorBuildSettings.scenes) 
					{
						DirectoryInfo info = new DirectoryInfo (scene.path);
						FileInfo[] fileList = info.GetFiles ("*.unity");
						foreach (var file in fileList)
							FileList.Add (file);
					}
				}
				else
				{
					List<string> dirList = new List<string> ();
					GetSubfolders (Application.dataPath, dirList);
					foreach (var path in dirList) 
					{
						DirectoryInfo info = new DirectoryInfo (path);
						FileInfo[] fileList = info.GetFiles ("*.unity");
						foreach (var file in fileList)
							FileList.Add (file);
					}
				}
			}
			scrollPos = GUILayout.BeginScrollView (scrollPos);
			if (FileList != null)
				foreach (var f in FileList)
					if (GUILayout.Button (f.Name))
						EditorApplication.OpenScene (f.FullName);
			GUILayout.EndScrollView ();

			IsUpdate = false;
			IsAllScene = GUILayout.Toggle (IsAllScene, "GET ALL SCENES");
			GUILayout.Space (20f);
			if (GUILayout.Button("Update", GUILayout.Width (200f)))
			{
				IsUpdate = true;
			}
		}

		private void GetSubfolders(string folderName, List<string> subFolders)
		{
			// Get sub folders
			foreach (string folder in Directory.GetDirectories(folderName))
			{
				// add list
				subFolders.Add(folder);
				GetSubfolders(folder, subFolders);
			}
		}
	}
}

以上是关于csharp 统一のシーンファイルリストウィンドウ。全てのシーン,ビルド登录シーンを切り替え可。的主要内容,如果未能解决你的问题,请参考以下文章

apache_conf ディレクトリのファイルリストを见せない。

html jQuery的でモーダルウィンドウ

ruby ターミナルとかでファイルの削除リストを提示された时に使う。

apache_conf テキスト入力确认ウィンドウサンプル

ruby ファイルリネーム

python メモリ上のCSVをリストに変换する方法。ファイルからCSVを読み込んだときのCSVと同様にcsv.rader()すると一文字ごとのリストが返ってしまうので,直接改行コードで区切りリストに