簡體   English   中英

覆蓋 Unity 內置組件的自定義檢查器

[英]Override custom inspector for Unity built in components

我可以將 CustomInspector 用於我編寫的腳本。 不幸的是,這不適用於 Unity 的內置組件(例如 Rigidbody、Transform...)。

我想隱藏其他所有內容,只顯示“質量”,但這並沒有反映在檢查員中。 相反,如果我轉到 3 個點並單擊屬性,它會顯示我編寫的 CustomInspector。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Rigidbody))]
public class RigidbodyEditor : Editor
{
    Rigidbody rigidbody;
    float mass;
    public override void OnInspectorGUI()
    {
        // base.OnInspectorGUI();
        rigidbody = (Rigidbody)target;

        mass = EditorGUILayout.FloatField("mass", mass);
        if (mass < 0)
        {
            mass = 0;
        }
        rigidbody.mass = mass;
    }
}

好的,剛剛解決了問題 - 我將我的類命名為 RigidbodyEditor,這正是 Unity 在其源代碼中命名它的方式。 我將名稱更改為其他名稱,並且效果很好。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Rigidbody))]
public class RigidbodyEditorOverride : Editor
{
    Rigidbody rigidbody;
    float mass;
    public override void OnInspectorGUI()
    {
        // base.OnInspectorGUI();
        rigidbody = (Rigidbody)target;

        mass = EditorGUILayout.FloatField("mass", mass);
        if (mass < 0)
        {
            mass = 0;
        }
        rigidbody.mass = mass;

        GUILayout.Button("hello");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM