返回

如何在 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. 新增測試代碼