1. 程式人生 > >【程式碼挖掘】建立unity工程常用目錄的editor編輯器

【程式碼挖掘】建立unity工程常用目錄的editor編輯器

效果圖:


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

/// <summary>
/// 遊戲架構 - 編輯器工具
/// </summary>
namespace GameFrame.Editor {
	
	/// <summary>
	/// 建立工程常用目錄
	/// </summary>
	public class CreateProjectDirWnd : EditorWindow {

		[MenuItem("Plugin/建立專案常用目錄...")]
		static void Create() {
			//建立視窗
			Rect wr = new Rect (0, 0, 650, 500);
			CreateProjectDirWnd wnd = (CreateProjectDirWnd)EditorWindow.GetWindowWithRect (typeof (CreateProjectDirWnd), 
				wr, true, "建立專案常用目錄");	
			wnd.Show();
		}

		bool isEditer, isEditor_NGUI, isGizmos, isStreamingAssets, isModels = true, isOthers, isPlugins = true;
		bool isPrefabs = true, isResources = true, isScenes = true, isScripts = true, isSounds = true;
		bool isTextures = true, isZ_Test, isMaterials = true, isFonts = true, isDataTable, isAnimations = true;
		bool isEffects, isShaders, isStandard_Assets, isControllers;

		void initArray(out bool[] vs, out string[] vn) {
			vs = new bool[] {
				isEditer, isEditor_NGUI, isGizmos, isStreamingAssets, isModels, isOthers, isPlugins,
				isPrefabs, isResources, isScenes, isScripts, isSounds,
				isTextures, isZ_Test, isMaterials, isFonts, isDataTable, isAnimations,
				isEffects, isShaders, isStandard_Assets, isControllers
			};

			vn = new string[] {
				"Editer", "Editor_NGUI", "Gizmos", "StreamingAssets", "Models", "Others", "Plugins",
				"Prefabs", "Resources", "Scenes", "Scripts", "Sounds",
				"Textures", "Z_Test", "Materials", "Fonts", "DataTable", "Animations",
				"Effects", "Shaders", "Standard Assets", "Animations/Controllers"
			};
		}

		void OnGUI() {
			GUILayout.Label ("常用目錄: ");

			isControllers = isAnimations;
			isAnimations = GUILayout.Toggle (isAnimations, "Animations (動畫檔案)");
			isPrefabs = GUILayout.Toggle (isPrefabs, "Prefabs (預製品檔案)");
			isResources = GUILayout.Toggle (isResources, "Resources (動態載入的資原始檔)");
			isScenes = GUILayout.Toggle (isScenes, "Scenes (場景檔案)");
			isScripts = GUILayout.Toggle (isScripts, "Scripts (指令碼程式碼檔案)");
			isSounds = GUILayout.Toggle (isSounds, "Sounds (音效檔案)");
			isTextures = GUILayout.Toggle (isTextures, "Textures (所有的貼圖)");
			isMaterials = GUILayout.Toggle (isMaterials, "Materials (材質檔案)");
			isFonts = GUILayout.Toggle (isFonts, "Fonts (字型檔案)");


			isModels = GUILayout.Toggle (isModels, "Models (模型檔案,其中會包括自動生成的材質球檔案)");
			isPlugins = GUILayout.Toggle (isPlugins, "Plugins (外部外掛資料夾,如一些外部DLL外掛)");
			isEffects = GUILayout.Toggle (isEffects, "Effects (特效檔案)");
			isShaders = GUILayout.Toggle (isShaders, "Shaders (著色器檔案)");
			isStandard_Assets = GUILayout.Toggle (isStandard_Assets, "Standard Assets (標準的需要打包的檔案)");

			GUILayout.Label ("其它目錄: ");

			isEditer = GUILayout.Toggle (isEditer, "Editer (自寫的靈活方便外掛)");
			isEditor_NGUI = GUILayout.Toggle (isEditor_NGUI, "Editor_NGUI (較大型三方的外掛)");
			isGizmos = GUILayout.Toggle (isGizmos, "Gizmos (使用GIZMOS所需要的標誌等臨時檔案)");
			isStreamingAssets = GUILayout.Toggle (isStreamingAssets, "StreamingAssets (流式資料,包括JsonData、Assetbundle、各種只讀檔案預儲存)");
			isDataTable = GUILayout.Toggle (isDataTable, "DataTable (策劃資料表文件)");
			isOthers = GUILayout.Toggle (isOthers, "Others (其他型別的檔案。例如新增的不常用的Shader、物理材質、動畫檔案。)");

			isZ_Test = GUILayout.Toggle (isZ_Test, "Z_Test (臨時測試檔案)");

			if (GUILayout.Button("全選", GUILayout.Width(200))) {
				doSelectAll (true);
			}
			if (GUILayout.Button("取消選擇", GUILayout.Width(200))) {
				doSelectAll (false);
			}
			if (GUILayout.Button("立即建立", GUILayout.Width(200))) {
				doCreate ();
				this.Close ();
			}
		}

		void doSelectAll(bool v) {
			isEditer = v;
			isEditor_NGUI = v;
			isGizmos = v;
			isStreamingAssets = v;
			isModels = v;
			isOthers = v;
			isPlugins = v;
			isPrefabs = v;
			isResources = v;
			isScenes = v;
			isScripts = v;
			isSounds = v;
			isTextures = v;
			isZ_Test = v;
			isMaterials = v;
			isFonts = v;
			isDataTable = v;
			isAnimations = v;
			isEffects = v;
			isShaders = v;
			isStandard_Assets = v;
			isControllers = v;
		}

		void doCreate() {	
			bool[] vs; 
			string[] vn;
			initArray (out vs, out vn);
			int m = 0;
			for (int i = 0, max = vs.Length; i < max; i++) {
				m += CreateFolder (vs [i], vn [i]);
			}
			if (m > 0)
				AssetDatabase.Refresh ();
		}

		int CreateFolder(bool v, string name) {
			if (v) {
				string path = Path.Combine ("Assets", name);
				return CeateFolder (path);
			} else
				return 0;
		}

		int CeateFolder(string path) {
			if (!Directory.Exists(path)) {
				Directory.CreateDirectory(path);
				return 1;
			} return 0;
		}
	}
}


相關推薦

程式碼挖掘建立unity工程常用目錄editor編輯

效果圖: using UnityEngine; using System.Collections; using System.IO; using UnityEditor; /// <summary> /// 遊戲架構 - 編輯器工具 /// &l

程式碼審計CLTPHP_v5.5.3後臺目錄遍歷漏洞分析

  0x00 環境準備 CLTPHP官網:http://www.cltphp.com 網站原始碼版本:CLTPHP內容管理系統5.5.3版本 程式原始碼下載:https://gitee.com/chichu/cltphp 預設後臺地址: http://127.0.0.1/admin/log

程式碼審計大米CMS_V5.5.3 目錄遍歷漏洞分析

  0x00 環境準備 大米CMS官網:http://www.damicms.com 網站原始碼版本:大米CMS_V5.5.3試用版(更新時間:2017-04-15) 程式原始碼下載:http://www.damicms.com/downes/dami.rar 測試網站首頁:  

程式碼筆記Web-CSS-CSS id和Class選擇

一,效果圖。 二,程式碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS id和class選擇器</title&

ASP.NET9.解決百度富文字編輯UEditor往後臺傳資料寫入資料庫時,出現錯誤:檢測到有潛在危險的Request

解決方法:把傳資料的方式換一下,在函式上面新增[ValidateInput(false)],如果是winform頁面,在aspx頁面裡新增ValidateRequest="false"%@ Page V

外掛開發觸屏裝置專用富文字編輯實現

前言 觸屏裝置上面由於空間狹小而有時候又有圖文混編的需求,所以,移動端尤其是web上面的富文字編輯器一直是一個空白,這段時候就做一個觸屏版的富文字–當然不可能像pc端那樣有數十個按鈕,控制粒度也不可能

課程說明上機實驗環境配置 CodeBlocks + 文字編輯sublime text 2

前言:本課程的上機實驗預設環境為CodeBlocks 12.11,同時順便向同學們介紹一個超級強大的文字編輯器sublime text 2,有興趣的同學可以按照配置步驟搭建自己的程式設計環境  一、CodeBlocks 12.11 安裝及使用 安裝包下載地址如下:官網下載

程式設計初學者建立自己的開源專案8-基於當前分支,提交歸併請求到主分支3-程式碼衝突(myeclipse+git)

上一章講到 將遠端程式碼庫中的自己分支上的程式碼,歸併到主分支中,主要分為三個大的步驟:     1.提交歸併請求 2.檢視程式碼,解決衝突  3.確認歸併請求     上兩章分別講了 1.提交歸併請求。 2.檢視程式碼並解決衝突。這一章講 最後一個步驟 3.確認歸併請求

程式設計初學者建立自己的開源專案3-將遠端程式碼倉庫下載,並建立原生代碼倉庫(myeclipse + github)

  上一篇:建立自己的開源專案-建立遠端程式碼倉庫         上一篇講了如何建立github賬號並建立遠端程式碼倉庫,這一篇講解如何將原生代碼倉庫下載到本地,並建立與之關聯的原生代碼倉庫。大家注意了,這一句話我說了兩個概念:遠端程式碼倉庫(remote repos

程式設計初學者建立自己的開源專案7-基於當前分支,提交歸併請求到主分支2-程式碼衝突(myeclipse+git)

上一章講到 將遠端程式碼庫中的自己分支上的程式碼,歸併到主分支中,主要分為三個大的步驟:     1.提交歸併請求 2.檢視程式碼,解決衝突  3.確認歸併請求 上一章講了 1.提交歸併請求。 這一章主要講第二個步驟 :2.檢視程式碼並解決衝突。下一章講3.確認歸併請求

轉載儲存Jsoup解析html常用方法

首先我們要清楚 class的繼承關係 Document 繼承於  Element  繼承於 Node  繼承於 Object 首先 我們先研究一下 Element 中的函式作用: 01 addClass(String className)  

程式碼筆記Web-HTML-框架

一,效果圖。 二,程式碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html 框架</title> <

程式碼筆記Web-HTML-顏色

一,效果圖。 二,程式碼。   <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html 顏色</title

程式碼筆記Web-HTML-指令碼

一,效果圖。   二,程式碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>html 指令碼</titl

實操建立雲監控報警規則

大家好,本期為大家介紹如何使用雲監控報警服務。報警服務提供監控資料的報警功能,我們通過設定報警規則來定義報警系統如何檢查監控資料,並在監控資料滿足報警條件時傳送報警通知。對我們的重要監控指標設定報警規則,可以在第一時間得知指標資料發生異常,迅速處理故障。 首先登入管理控制檯,在產品與服務→監控與管理中點選雲

程式碼筆記Web-HTML-表單

一,效果圖。       二,程式碼。   <!DOCTYPE html> <html> <head> <meta charset="utf-8">

程式碼筆記Web-Javascript-javascript簡介

一,效果圖。 二,程式碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>javascript 簡介</title&g

程式碼筆記Web-JavaScript-JavaScript用法

一,效果圖。   二,程式碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>javascript 用法<

TP5.1建立通用的基類自定義命令

author:咔咔 wechat:fangkangfk   在之前我們一直在做admin下的業務,在設定自定義模板的時候沒有考慮到一些情況   下面我們來改動一下 這樣做就ok了,不管是建立admin下的控制器,還是index的控制器,這一個模板就可以

程式碼模板不存在的NOIP2017

雖然可能沒機會參加NOIP2017的複賽了 但是這份模板我還是會在比賽前完成它的, 作為對我過去一年的反饋。 因為技能樹點歪,,所以我會棄坑重新來點, 辣麼,,模板題的理解就很重要,他直接決定了其他的題目你寫不寫的來。。 所以,這裡的許多東西也許沒辦法在OJ上直接驗證正確性(這也是打模板