覆盖Unity内置组件的自定义检查器



我可以为我编写的脚本使用CustomInspector。不幸的是,这对Unity的内置组件(如刚体、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;
}
}

OK刚刚解决了问题——我将类命名为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");
}
}

最新更新