Editor文檔資料
Unity教程之-Unity Attribute的使用總結:http://www.unity.5helpyou.com/3550.html
利用unity3d屬性來設置Inspector面板的特殊行為: http://www.360doc.com/content/15/1205/14/25502502_518083734.shtml
--------------分隔線------------------
一些比較常用的Editor功能我在之前的博客中也有提到過所以就不詳細寫啦,今天瀏覽到 麒麟子(Alex) 的博客,寫的很全面,轉載部分內容過來
EditorApplication(主應用程序類)
這個類提供了許多變量的訪問,同時提供了Save等方法。 比如,你可以新建一個編輯器腳本,在它的UPDATE函數里,進行記事,以做定時保存。從而避免不必要的損失。
這個類還提供了新建場景,打開項目等操作。
如果你是在界面下使用UNITY3D,可能這個類的意義不大。 但如果你是基於U3D的命令行來構建一個一鍵式多平台發布方案。那這個類的地位就舉足輕重了。 說到命令行,這個改天有空再和大家細說。 U3D是一個強大的工具,完全可以取代自主研發的引擎。 不管是從自動化部署還是自定義工具上,都很強大。 關鍵看你打不打算花時間去這樣用。
當然我們在制作自己的編輯器工具時也有使用到它來做一些初始化場景的工作。
BaseHierarchySort(對象排序)
在Hierarchy中,所有對象默認是按首字母排序。 如果我想根據創建日期,或者是根據地理位置,又或者根據對象類型來排序,如何做呢。 這就需要用到BaseHierarchySort,我們可以重寫它的Compare方法,同時,我們添加幾個菜單來做切換。就能使我們的工作很加便利了。
EditorUtility
一看明字就知道,這貨肯定提供了不少全局函數,並且多半是靜態的。比如,你想彈出一個打開文件的對話框,或者保存文件的對話框。或者你要查看場景樹中的某個對象是enable與否,都可以通過它來訪問。更好的是,他還提供了一個彈出對話框。 你想做一些讓用戶選擇是否確定的,或者顯示一個About,可以使它。
參見:http://game.ceeger.com/Script/EditorUtility/EditorUtility.html
EditorWindow
當一個類繼承自EditorWindow ,可以調用this.ShowNotification() 它會自動消失,如果想快速移出消息提示:this.RemoveNotification();
文檔:http://docs.unity3d.com/ScriptReference/EditorWindow.ShowNotification.html
FileUtil(文件工具)
這個類提供了一些文件拷貝,移動位置等操作,在命令行模式進行自動布署的時候,使用居多。
Help
在你的編輯器中,如果你覺得你的文字不足以表達,或者需要用戶查詢相關文檔,那你可以使用HELP,它提供了打開網頁地址的功能。
ObjectPreview(創建自定義預覽)
這個類提供了你當前選擇的對象數據。 比如,在上面顯示攻擊和偵測范圍的例子中,如果我們只是想讓選中的單位才顯示預覽,那我們可以通過這個類的target來判定。
NGUI示例
可以查看NGUI的UISPriteInspector.cs文件,對Sprite做了預覽處理
Tools(工具類,好的自定義編輯器)
這個類提供了對象批量查找功能,比如,如果我們的工具,想對某一類對象進行打包。 那我們直接使用FindObjectsOfType,拿到所有的對象即可。 TOOL還提供了實例化對象的功能。
AssetDatabase(資源操作)
文檔:https://docs.unity3d.com/ScriptReference/AssetDatabase.html
提供對Project視圖中的資源進行操作,比如LoadAsset,MoveAsset,DeleteAsset等
注意:這個類的API的路徑都是指Assets/下的,比如你要Load某個Font文件,寫法如下:
var newFont = AssetDatabase.LoadAssetAtPath<Font>("Assets/font.ttf");