[英]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.