提问人:FlamesWillBurst 提问时间:5/23/2023 更新时间:5/23/2023 访问量:64
ObjectReferenceValue 未在 CustomPropertyDrawer 中更新
ObjectReferenceValue not updating in CustomPropertyDrawer
问:
我正在尝试创建一个自定义属性抽屉,该抽屉允许我打开和编辑可编写脚本对象的属性,但是我希望这样做,以便如果我以这种方式创建新的可编写脚本的对象(仅在内存中而不是在磁盘上),那么它应该创建一个新的实例。
[CustomPropertyDrawer(typeof(CharacterData))]
public class CharacterDataPropertyDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
if (GUI.Button(position, "Edit Properties"))
{
if (property.objectReferenceValue == null)
{
property.objectReferenceValue = ScriptableObject.CreateInstance<CharacterData>();
if (property.objectReferenceValue == null)
Debug.Log("this is still null");
}
EditorUtility.OpenPropertyEditor(property.objectReferenceValue);
//EditorUtility.OpenPropertyEditor(ScriptableObject.CreateInstance<CharacterData>());//This works but does not get saved obviously
}
EditorGUI.EndProperty();
}
}
我试图我能够为这个可折叠的对象创建一个新的 instace 并对其进行编辑,但我总是得到这仍然是 null 的 debe。
我尝试使用apply serializedObject.ApplyModifiedProperties();但这也没有成功
答: 暂无答案
评论