private void DrawPaintAttributeValues() { // Display the values as editable fields if (_selectedAttributeData == null) { return; } if(!_selectedAttributesStore.HasMeshForPainting()) { HEU_EditorUI.DrawWarningLabel(_noMeshForPainting); return; } SerializedProperty selectedToolsValuesProperty = null; if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.INT) { selectedToolsValuesProperty = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_paintIntValue"); if (selectedToolsValuesProperty != null) { ResizeSerializedPropertyArray(selectedToolsValuesProperty, _selectedAttributeData._attributeInfo.tupleSize); HEU_EditorUtility.EditorDrawArrayProperty(selectedToolsValuesProperty, HEU_EditorUtility.EditorDrawIntProperty, _paintValuesLabel); } } else if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.FLOAT) { selectedToolsValuesProperty = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_paintFloatValue"); if (selectedToolsValuesProperty != null) { ResizeSerializedPropertyArray(selectedToolsValuesProperty, _selectedAttributeData._attributeInfo.tupleSize); HEU_EditorUtility.EditorDrawArrayProperty(selectedToolsValuesProperty, HEU_EditorUtility.EditorDrawFloatProperty, _paintValuesLabel); } // Display paint color selector if this is a color attribute if (_selectedAttributeData.IsColorAttribute()) { Color color = Color.white; if (selectedToolsValuesProperty.arraySize >= 3) { color.r = selectedToolsValuesProperty.GetArrayElementAtIndex(0).floatValue; color.g = selectedToolsValuesProperty.GetArrayElementAtIndex(1).floatValue; color.b = selectedToolsValuesProperty.GetArrayElementAtIndex(2).floatValue; if (selectedToolsValuesProperty.arraySize >= 4) { color.a = selectedToolsValuesProperty.GetArrayElementAtIndex(3).floatValue; } } Color newColor = EditorGUILayout.ColorField(_paintColorLabel, color); if (color != newColor) { if (selectedToolsValuesProperty.arraySize >= 3) { selectedToolsValuesProperty.GetArrayElementAtIndex(0).floatValue = newColor.r; selectedToolsValuesProperty.GetArrayElementAtIndex(1).floatValue = newColor.g; selectedToolsValuesProperty.GetArrayElementAtIndex(2).floatValue = newColor.b; if (selectedToolsValuesProperty.arraySize >= 4) { selectedToolsValuesProperty.GetArrayElementAtIndex(3).floatValue = newColor.a; } } } } } else if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.STRING) { selectedToolsValuesProperty = HEU_EditorUtility.GetSerializedProperty(_toolsInfoSerializedObject, "_paintStringValue"); if (selectedToolsValuesProperty != null) { ResizeSerializedPropertyArray(selectedToolsValuesProperty, _selectedAttributeData._attributeInfo.tupleSize); HEU_EditorUtility.EditorDrawArrayProperty(selectedToolsValuesProperty, HEU_EditorUtility.EditorDrawTextProperty, _paintValuesLabel); } } if (!_selectedAttributeData.IsColorAttribute()) { HEU_EditorUtility.EditorDrawSerializedProperty(_toolsInfoSerializedObject, "_affectedAreaPaintColor", _affectedAreaColorLabel, "Color to show painted area."); } }