public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { Rect colorFieldPos = new Rect(position.x, position.y, position.width - mLabelWidth, position.height); EditorGUI.PropertyField(colorFieldPos, property, label, true); GUI.SetNextControlName("Encoded Color"); Rect stringFieldPos = new Rect(position.x + position.width - mLabelWidth, position.y, mLabelWidth, position.height); mEncodedColor = EditorGUI.TextField(stringFieldPos, "", mEncodedColor); if (GUI.GetNameOfFocusedControl() == "Encoded Color") { if (Event.current.keyCode == KeyCode.Return && Event.current.type == EventType.Used) { property.colorValue = ConvertExt.ParseColor24(mEncodedColor, 0); } } else { mEncodedColor = ConvertExt.EncodeColor24(property.colorValue); } }