The readonly system object drawer with actual struct values will produce "Tried to change value of non-editable property" warning

Issue #706 new
aisaka taiga created an issue

Here is the minimum example:

[ShowInInspector]
[ReadOnly]
[HideInEditorMode]
public object RuntimeValue
{
get
{
return new Color();
}
}

Here is the stack trace:

Tried to change value of non-editable property 'Runtime Value' of type 'Color' at path 'RuntimeValue'.
UnityEngine.Debug:LogWarning(Object)
Sirenix.OdinInspector.Editor.PropertyValueEntry`1:set_SmartValue(Object)
Sirenix.OdinInspector.Editor.PropertyValueEntryAlias`2:set_SmartValue(Color)
Sirenix.OdinInspector.Editor.Drawers.ColorDrawer:DrawPropertyField(IPropertyValueEntry`1, GUIContent)
Sirenix.OdinInspector.Editor.PrimitiveCompositeDrawer`1:DrawPropertyLayout(GUIContent)
Sirenix.OdinInspector.Editor.OdinDrawer:CallNextDrawer(GUIContent)
Sirenix.OdinInspector.Editor.Drawers.NullableReferenceDrawer`1:DrawPropertyLayout(GUIContent)
Sirenix.OdinInspector.Editor.OdinDrawer:CallNextDrawer(GUIContent)
Sirenix.OdinInspector.Editor.Drawers.PropertyContextMenuDrawer`1:DrawPropertyLayout(GUIContent)
Sirenix.OdinInspector.Editor.OdinDrawer:CallNextDrawer(GUIContent)
Sirenix.OdinInspector.Editor.Drawers.HideInEditorModeAttributeDrawer:DrawPropertyLayout(GUIContent)
Sirenix.OdinInspector.Editor.OdinDrawer:DrawProperty(GUIContent)
Sirenix.OdinInspector.Editor.InspectorProperty:Draw(GUIContent)
Sirenix.OdinInspector.Editor.InspectorUtilities:DrawPropertiesInTree(PropertyTree)
Sirenix.OdinInspector.Editor.PropertyTree:Draw(Boolean)
Sirenix.OdinInspector.Editor.OdinEditor:DrawTree()
Sirenix.OdinInspector.Editor.OdinEditor:DrawOdinInspector()
Sirenix.OdinInspector.Editor.OdinEditor:OnInspectorGUI()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Comments (0)

  1. Log in to comment