返回





如何在 Inspector 上添加自定義按鈕?
介紹我們今天要在Unity的Inspector中製作一顆測試按鈕:

它的特點是你可以直接在Function上掛載Attribute
方便快速進行測試:
c#
這個按鈕我們先命名為 - YapiBtn
1. 新增一個Attributes代碼
c#
前面的 YapiBtn 名字可以隨意命名
但後面需要加上 Attributes
然後繼承 Attribute 的 Class
接著在上面定義 [AttributeUsage(AttributeTargets.Method)]
表示這個 Attribute 可以被用在 Function 上
其他常見的值還有:
AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。
2. 創建一個 Yapi Behavior 的代碼
typescript
為了不要影響到 MonoBehaviour 的運作
我們可以創建一個自己的 Behaviour 來繼承 MonoBehaviour
3. 新增一個YapiBtnDrawer的Editor代碼
c#
以上的代碼主要是複寫 YapiBehavior 的 Inspector GUI 顯示
我們遍歷所有的 Methods
找到所有有掛載的 YapiBtnAttribute 代碼後
在上面使用 GUILayout.Button 繪製一個按鈕
點擊的時候則呼叫該 Method
4. 新增測試代碼
接下來可以新增一個測試代碼來驗證效果
隨便寫一個 Function, 在上面掛載 [YapiBtn]
c#
然後把它掛載在場景的 GameObject 上
最終效果:
0:00/0:031×
YapiUnity Flow 創辦人 喜歡研究遊戲開發的技術 結合各種領域科技技術放到遊戲中Website
On this page介紹1. 新增一個Attributes代碼2. 創建一個 Yapi Behavior 的代碼3. 新增一個YapiBtnDrawer的Editor代碼4. 新增測試代碼
介紹我們今天要在Unity的Inspector中製作一顆測試按鈕:

它的特點是你可以直接在Function上掛載Attribute
方便快速進行測試:
c#
這個按鈕我們先命名為 - YapiBtn
1. 新增一個Attributes代碼
c#
前面的 YapiBtn 名字可以隨意命名
但後面需要加上 Attributes
然後繼承 Attribute 的 Class
接著在上面定義 [AttributeUsage(AttributeTargets.Method)]
表示這個 Attribute 可以被用在 Function 上
其他常見的值還有:
AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。
2. 創建一個 Yapi Behavior 的代碼
typescript
為了不要影響到 MonoBehaviour 的運作
我們可以創建一個自己的 Behaviour 來繼承 MonoBehaviour
3. 新增一個YapiBtnDrawer的Editor代碼
c#
以上的代碼主要是複寫 YapiBehavior 的 Inspector GUI 顯示
我們遍歷所有的 Methods
找到所有有掛載的 YapiBtnAttribute 代碼後
在上面使用 GUILayout.Button 繪製一個按鈕
點擊的時候則呼叫該 Method
4. 新增測試代碼
接下來可以新增一個測試代碼來驗證效果
隨便寫一個 Function, 在上面掛載 [YapiBtn]
c#
然後把它掛載在場景的 GameObject 上
最終效果:
0:00/0:031×
YapiUnity Flow 創辦人 喜歡研究遊戲開發的技術 結合各種領域科技技術放到遊戲中Website
On this page介紹1. 新增一個Attributes代碼2. 創建一個 Yapi Behavior 的代碼3. 新增一個YapiBtnDrawer的Editor代碼4. 新增測試代碼
介紹我們今天要在Unity的Inspector中製作一顆測試按鈕:

它的特點是你可以直接在Function上掛載Attribute
方便快速進行測試:
c#
這個按鈕我們先命名為 - YapiBtn
1. 新增一個Attributes代碼
c#
前面的 YapiBtn 名字可以隨意命名
但後面需要加上 Attributes
然後繼承 Attribute 的 Class
接著在上面定義 [AttributeUsage(AttributeTargets.Method)]
表示這個 Attribute 可以被用在 Function 上
其他常見的值還有:
AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。
2. 創建一個 Yapi Behavior 的代碼
typescript
為了不要影響到 MonoBehaviour 的運作
我們可以創建一個自己的 Behaviour 來繼承 MonoBehaviour
3. 新增一個YapiBtnDrawer的Editor代碼
c#
以上的代碼主要是複寫 YapiBehavior 的 Inspector GUI 顯示
我們遍歷所有的 Methods
找到所有有掛載的 YapiBtnAttribute 代碼後
在上面使用 GUILayout.Button 繪製一個按鈕
點擊的時候則呼叫該 Method
4. 新增測試代碼
接下來可以新增一個測試代碼來驗證效果
隨便寫一個 Function, 在上面掛載 [YapiBtn]
c#
然後把它掛載在場景的 GameObject 上
最終效果:
0:00/0:031×
YapiUnity Flow 創辦人 喜歡研究遊戲開發的技術 結合各種領域科技技術放到遊戲中Website
On this page介紹1. 新增一個Attributes代碼2. 創建一個 Yapi Behavior 的代碼3. 新增一個YapiBtnDrawer的Editor代碼4. 新增測試代碼
介紹我們今天要在Unity的Inspector中製作一顆測試按鈕:

它的特點是你可以直接在Function上掛載Attribute
方便快速進行測試:
c#
這個按鈕我們先命名為 - YapiBtn
1. 新增一個Attributes代碼
c#
前面的 YapiBtn 名字可以隨意命名
但後面需要加上 Attributes
然後繼承 Attribute 的 Class
接著在上面定義 [AttributeUsage(AttributeTargets.Method)]
表示這個 Attribute 可以被用在 Function 上
其他常見的值還有:
AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。
2. 創建一個 Yapi Behavior 的代碼
typescript
為了不要影響到 MonoBehaviour 的運作
我們可以創建一個自己的 Behaviour 來繼承 MonoBehaviour
3. 新增一個YapiBtnDrawer的Editor代碼
c#
以上的代碼主要是複寫 YapiBehavior 的 Inspector GUI 顯示
我們遍歷所有的 Methods
找到所有有掛載的 YapiBtnAttribute 代碼後
在上面使用 GUILayout.Button 繪製一個按鈕
點擊的時候則呼叫該 Method
4. 新增測試代碼
接下來可以新增一個測試代碼來驗證效果
隨便寫一個 Function, 在上面掛載 [YapiBtn]
c#
然後把它掛載在場景的 GameObject 上
最終效果:
0:00/0:031×
YapiUnity Flow 創辦人 喜歡研究遊戲開發的技術 結合各種領域科技技術放到遊戲中Website
On this page介紹1. 新增一個Attributes代碼2. 創建一個 Yapi Behavior 的代碼3. 新增一個YapiBtnDrawer的Editor代碼4. 新增測試代碼
介紹我們今天要在Unity的Inspector中製作一顆測試按鈕:

它的特點是你可以直接在Function上掛載Attribute
方便快速進行測試:
c#
這個按鈕我們先命名為 - YapiBtn
1. 新增一個Attributes代碼
c#
前面的 YapiBtn 名字可以隨意命名
但後面需要加上 Attributes
然後繼承 Attribute 的 Class
接著在上面定義 [AttributeUsage(AttributeTargets.Method)]
表示這個 Attribute 可以被用在 Function 上
其他常見的值還有:
AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。AttributeTargets.Class
:適用於類別。AttributeTargets.Method
:適用於方法。AttributeTargets.Property
:適用於屬性。AttributeTargets.Field
:適用於欄位。AttributeTargets.Constructor
:適用於建構子。AttributeTargets.All
:適用於所有程式元素。
2. 創建一個 Yapi Behavior 的代碼
typescript
為了不要影響到 MonoBehaviour 的運作
我們可以創建一個自己的 Behaviour 來繼承 MonoBehaviour
3. 新增一個YapiBtnDrawer的Editor代碼
c#
以上的代碼主要是複寫 YapiBehavior 的 Inspector GUI 顯示
我們遍歷所有的 Methods
找到所有有掛載的 YapiBtnAttribute 代碼後
在上面使用 GUILayout.Button 繪製一個按鈕
點擊的時候則呼叫該 Method
4. 新增測試代碼
接下來可以新增一個測試代碼來驗證效果
隨便寫一個 Function, 在上面掛載 [YapiBtn]
c#
然後把它掛載在場景的 GameObject 上
最終效果:
0:00/0:031×
YapiUnity Flow 創辦人 喜歡研究遊戲開發的技術 結合各種領域科技技術放到遊戲中Website
On this page介紹1. 新增一個Attributes代碼2. 創建一個 Yapi Behavior 的代碼3. 新增一個YapiBtnDrawer的Editor代碼4. 新增測試代碼