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