免職聲明:
- 1、目前本博客分享的大部分知識產出方式是:學習別人知識+自己實際做一遍+自己的理解+擴展內容+自己整理、歸納、總結再分享。
- 2、正如博客簡介所說:
這里沒有教程,這里只做學習分享
。所有的內容都是學習筆記,可以說沒有什么內容是真正的意義上的“原創”,哪怕是如何安裝unity都是跟著網上教程學習的,我的學習理念是:與其閉門造車,不如站在巨人的肩膀上 —— 融會貫通行業前輩們的寶貴經驗。- 3、unity基礎入門知識我就看了3個老師的教程,然后整合起來。比如這里的【unity游戲開發入門到精通】,其實一開始是看b站飛羽老師的,然后又融合外網CodeMonkey的知識,最后又看了唐老師的基礎入門的課程,結果發現唐老師的課程確實講的最好,又全部推翻重置了,目前看到的其實已經是第三版了。其中還包括一些其他的實戰內容和自己的理解。
- 4、其實每篇文章我都參考了很多資料。真要全部寫出來,可能理不清楚。比如參考平臺有b站、百度、知乎、csdn、siki、泰課、unity官方文檔、外網論壇、一些私人博客網站等等,博主包括唐老師、林新發、BeaverJoe、奧颯姆、飛魚老師、麥扣、打工人小棋、C醬、IGBeginner0116等等,外網就更多了都不太記得名字了比如CodeMonkey、MixandJam、SunnyValleyStudio等等。這里就不一一列舉了,畢竟參考的資料實在太多了。
- 5、參考的部分博主我都私信問過了,得到過許可。
- 6、關于原創性。我覺得有個說法很好,只要不是直接復制粘貼,而是自己
整理、歸納、總結
,我覺得都可以算原創。學習他人知識其實更像是查閱了參考資料,不然,除了官方文檔,應該都不算是原創內容了。- 7、為什么收費?我也很佩服那些無償分享知識甚至開源的人,他們真的很偉大。但是,我也理解為什么有些人會選擇收費。畢竟,時間和精力都是有限的,有時候整理一個知識點就花費幾個星期甚至上月,也不是每個家庭都很富裕,我們需要通過分享知識來獲得一定的經濟回報,以支持我們的創作和維護。另外CSDN也沒有任何其他的廣告收入方式,完全靠用愛發電。所以,如果你覺得我的文章對你有幫助,歡迎支持我,謝謝!
- 8、費用我也盡量最低(CSDN官方拿一半的分成,分到我手沒多少),這個價格也僅僅算是收個筆記整理費用了,這個價格如果想要在其他地方購買,我想也很難買到了。如果大家不想花這個錢,也可以去網上找一些免費的視頻教程,比如B站、YouTube等自行去進行學習整理,我分享的所有知識,不出意外都能在網上找到相關的解決方案。
- 9、交易是你情我愿的,如果不滿意可以選擇退款。當然,如果有人覺得我整理的不好,也歡迎私信評論告訴我,我會重新整理的。
- 10、正如前面所說,參考的資料太多了,每個文章都去寫很麻煩。后面我會在首頁做個
感謝榜
,盡量將參考過的博主鏈接直接放在首頁展示,大家可以自行去查看。如果有遺漏也歡迎找我補充。- 11、為什么選擇CSDN?一是習慣了,用了很多年了,一個是它的SEO做的確實很優秀。
注意
:考慮到編輯器擴展的內容比較多,我將編輯器擴展的內容分開,并全部整合放在【unity游戲開發——編輯器擴展】專欄里,感興趣的小伙伴可以前往逐一查看學習。
文章目錄
- 前置知識
- 1、Editor 編輯器文件夾
- 2、不? Editor ?件夾
- 3、編輯器擴展相關命名空間
- 一、使用MenuItem自定義菜單欄拓展
- 1、在Unity菜單欄中添加自定義頁簽
- 1.1 用法
- 1.2 示例
- 2、在Hierarchy窗口中添加自定義頁簽
- 2.1 用法
- 2.2 示例
- 3、在Project窗口中添加自定義頁簽
- 3.1 用法
- 3.2 示例
- 4、在Inspector對腳本右鍵添加菜單
- 4.1 用法
- 4.2 示例
- 5、快捷鍵
- 5.1 介紹
- 5.2 示例
- 6、排序
- 二、在菜單欄的Component菜單添加腳本(補充)
- 1、介紹
- 2、示例
- 專欄推薦
- 完結
前置知識
1、Editor 編輯器文件夾
主要新項目需要自己手動創建
- 作用:用于存放與Unity編輯器相關的腳本,內容不會被打包到發布版本中。
- 注意:該文件夾中的腳本僅在編輯模式下使用,不會被打包到游戲發布包中。
2、不? Editor ?件夾
如果你不想使用 Editor ?件夾其實也可以,我沒就需要在代碼中給每個 UnityEditor API
都加上#if UNITY_EDITOR
宏判斷。比如:
#if UNITY_EDITOR
using UnityEditor;
#endif#if UNITY_EDITOR[MenuItem("XYFrame/XYFrame/1.一鍵打包XYFrame")]
#endif
這樣做的?的,是為了不影響我們項?打包。如果編輯器擴展相關代碼不放在Editor文件夾內,又不加宏判斷,項目打包會報錯。
3、編輯器擴展相關命名空間
using UnityEditor;
一、使用MenuItem自定義菜單欄拓展
- 特性:MenuItem
- 作用:在菜單欄點擊該頁簽時,將執行靜態函數中邏輯。
- 注意:
- 不用在意繼承對象,不繼承Monobehaviour也沒問題。
- 斜杠必須是
/
不能是\
。 - 一定要加在靜態函數上才有效
1、在Unity菜單欄中添加自定義頁簽
1.1 用法
在靜態函數前加上
[MenuItem("頁簽/一級選項/二級選項/....")]
1.2 示例
using UnityEditor;
using UnityEngine;public class MenuItemTest
{[MenuItem("編輯器拓展/菜單1/子菜單1")]private static void TestFun1(){Debug.Log("打印1");}
}
效果
不需要運行游戲,點擊即可執行TestFun1方法
2、在Hierarchy窗口中添加自定義頁簽
2.1 用法
在靜態函數前加上,并且頁簽命名前面放入GameObject路徑
[MenuItem("GameObject/頁簽/一級選項/二級選項/....")]
2.2 示例
[MenuItem("GameObject/編輯器拓展/菜單1/子菜單1")]
private static void TestFun2()
{Debug.Log("打印2");
}
效果
或者
3、在Project窗口中添加自定義頁簽
3.1 用法
在靜態函數前加上,并且頁簽命名前面放入Assets
路徑
[MenuItem("Assets/頁簽/一級選項/二級選項/....")]
3.2 示例
[MenuItem("Assets/編輯器拓展/菜單1/子菜單1")]
private static void TestFun3()
{Debug.Log("打印3");
}
效果
或者
4、在Inspector對腳本右鍵添加菜單
4.1 用法
在靜態函數前加上,并且頁簽命名前面放入CONTEXT
路徑
[MenuItem("CONTEXT/腳本名/頁簽/一級選項/二級選項/....")]
4.2 示例
[MenuItem("CONTEXT/NewMonoBehaviourScript/編輯器拓展/菜單1/TestFun4")]
private static void TestFun4()
{Debug.Log("打印4");
}
5、快捷鍵
5.1 介紹
-
基礎用法:路徑后 + 空格 + 下劃線 + 想要的按鍵
[MenuItem("編輯器拓展/菜單2/TestFun5 _F4")]
-
特殊按鍵:
%
表示ctrl
,#
表示shift
,&
表示alt
,注意使用特殊按鍵前面不需要加下劃線//最后有個 “ %e”,這個就是快捷鍵的符號,意思是 ctrl/cmd + e [MenuItem("XYFrame/XYFrame/1.一鍵打包XYFrame %e")]
-
其他支持的按鍵:
LEFT、RIGHT、UP、DOWN、F1..F12、HOME、END、PGUP、PGDN 等等
5.2 示例
[MenuItem("編輯器拓展/菜單2/TestFun5 _F4")]
private static void TestFun5()
{Debug.Log("TestFun5");
}[MenuItem("編輯器拓展/菜單2/TestFun6 _A")]
private static void TestFun6()
{Debug.Log("TestFun6");
}[MenuItem("編輯器拓展/菜單2/TestFun7 _%#&A")]
private static void TestFun7()
{Debug.Log("TestFun7");
}
效果
6、排序
MenuItem第三個參數,意思是優先級,表示 MenuItem 所在的顯示順序,數值越?越在底部。
[MenuItem("XYFrame/XYFrame/2.打開存儲目錄, false, 1")]
注意:兩個菜單按鈕的排序差大于1,則會在兩個按鈕之間顯示一條線進行分隔。
二、在菜單欄的Component菜單添加腳本(補充)
1、介紹
- 特性:AddComponentMenu
- 用法:在想要通過Component菜單添加的腳本前加上
[AddComponentMenu("一級選項/二級選項/....")]
- 注意:
- 腳本需要繼承MonoBehaviour對象。
- 斜杠必須是 / 。
- 最后一級選項的名字可以和腳本名不一樣,但是建議一致。
- 由于給GameObject添加的腳本肯定要繼承Monobehaviour,所以不放在Editor文件夾。
2、示例
using UnityEngine;[AddComponentMenu("編輯器拓展/菜單1/子菜單1")]
public class AddComponentMenuTest : MonoBehaviour {}
腳本不放在Editor文件夾
效果
或者
專欄推薦
地址 |
---|
【unity游戲開發入門到精通——C#篇】 |
【unity游戲開發入門到精通——unity通用篇】 |
【unity游戲開發入門到精通——unity3D篇】 |
【unity游戲開發入門到精通——unity2D篇】 |
【unity實戰】 |
【制作100個Unity游戲】 |
【推薦100個unity插件】 |
【實現100個unity特效】 |
【unity框架/工具集開發】 |
【unity游戲開發——模型篇】 |
【unity游戲開發——InputSystem】 |
【unity游戲開發——Animator動畫】 |
【unity游戲開發——UGUI】 |
【unity游戲開發——聯網篇】 |
【unity游戲開發——優化篇】 |
【unity游戲開發——shader篇】 |
【unity游戲開發——編輯器擴展】 |
完結
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果學習過程中遇到任何問題,也歡迎你評論私信找我。
贈人玫瑰,手有余香!如果文章內容對你有所幫助,請不要吝嗇你的點贊評論和關注
,你的每一次支持
都是我不斷創作的最大動力。當然如果你發現了文章中存在錯誤
或者有更好的解決方法
,也歡迎評論私信告訴我哦!