[Unity] Custom Editor (1) – Transform Reset



遊戲最常調整修改 Transform 的位置或旋轉角度
但想要回到修改前的狀態,就只能一直回復
如果有一個預設值可以設定就好了!
好在已經有開發者幫我們做好 Plugins 了
讓我們來研究一下怎麼做到的吧!

Overview

1. 下載 Transform Reset
2. DecoratorEditor
3. Custom transform inspector


1. 下載 Transform Reset

下載完後你會發現只有一個叫 TransformInspector.cs 的檔案
但裡面包含了 TransformReset 和 DecoratorEditor 兩個 class

[Unity] Transform Reset

2. DecoratorEditor

DecoratorEditor 是由一位叫 Lior Tal 的開發者想出的方法
詳細請看原文:

Unity Editor Extensions – Extending Unity’s Default Inspectors

由於我們無法繼承 Unity 現有的 Inspector
所以使用 Decorator Pattern 搭配 reflection 的方式
把原本 Editor 中所有公開的方法全部接一遍

3. Custom transform inspector

使用上舉例來說,客製化自己的 Transform Editor 主要需做以下步驟
(1) 繼承 DecoratorEditor
(2) 建構式傳入 Unity 對應的 Editor 名稱

不知道怎麼找的話可以看這一篇:

[Unity] 如何找到 Unity 預設的 Editor 類別名稱

程式碼大概是這個樣子:

using UnityEditor;
using UnityEngine;
 
[CustomEditor(typeof(Transform))]
public class TransformInspector : DecoratorEditor
{
    public TransformInspector()
        : base("TransformInspector")
        {}
 
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
 
        GUILayout.Button("Test");
    }
}
Github 完整專案



歡迎您留言與分享!(Welcome for comments or sharing!)

Related Post:

Tagged on: ,