private void DrawIconSpriteEditor(bool showComponents, ButtonIconSet iconSet) { if (showComponents) { EditorGUILayout.PropertyField(iconSpriteRendererProp); } Sprite currentIconSprite = null; if (iconQuadTextureProp.objectReferenceValue != null) { currentIconSprite = iconSpriteProp.objectReferenceValue as Sprite; } else { if (iconSpriteRendererProp.objectReferenceValue != null) { currentIconSprite = ((SpriteRenderer)iconSpriteRendererProp.objectReferenceValue).sprite; } else { EditorGUILayout.HelpBox("This button has no icon quad renderer assigned.", MessageType.Warning); return; } } EditorGUILayout.Space(); EditorGUILayout.PropertyField(iconSetProp); if (iconSet != null) { Sprite newIconSprite; if (iconSet.EditorDrawSpriteIconSelector(currentIconSprite, out newIconSprite, 1)) { iconSpriteProp.objectReferenceValue = newIconSprite; cb.SetSpriteIcon(newIconSprite); } } else { EditorGUILayout.HelpBox("No icon set assigned. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); EditorGUILayout.PropertyField(iconSpriteProp); } }
private void DrawIconSpriteEditor(bool showComponents, ButtonIconSet iconSet) { if (showComponents) { EditorGUILayout.PropertyField(iconSpriteRendererProp); } Sprite currentIconSprite = null; if (iconQuadTextureProp.objectReferenceValue != null) { currentIconSprite = iconSpriteProp.objectReferenceValue as Sprite; } else { if (iconSpriteRendererProp.objectReferenceValue != null) { currentIconSprite = ((SpriteRenderer)iconSpriteRendererProp.objectReferenceValue).sprite; } else { EditorGUILayout.HelpBox("This button has no icon quad renderer assigned.", MessageType.Warning); return; } } EditorGUILayout.Space(); EditorGUILayout.PropertyField(iconSetProp); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button(EditorGUIUtility.IconContent("d_Refresh"), EditorStyles.miniButtonRight, GUILayout.Width(24f))) { iconSet.UpdateSpriteIconTextures(); } EditorGUILayout.EndHorizontal(); if (iconSet == null) { EditorGUILayout.HelpBox("No icon set assigned. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); EditorGUILayout.PropertyField(iconQuadTextureProp); return; } if (iconSet.SpriteIcons == null || iconSet.SpriteIcons.Length == 0) { EditorGUILayout.HelpBox("No sprite icons assigned to the icon set. You can specify custom icons manually by assigning them to the field below:", MessageType.Info); EditorGUILayout.PropertyField(iconQuadTextureProp); return; } Sprite newIconSprite; bool foundSprite; if (iconSet.EditorDrawSpriteIconSelector(currentIconSprite, out foundSprite, out newIconSprite, 1)) { iconSpriteProp.objectReferenceValue = newIconSprite; cb.SetSpriteIcon(newIconSprite); } if (!foundSprite) { EditorGUILayout.HelpBox(missingIconWarningMessage, MessageType.Warning); EditorGUILayout.PropertyField(iconSpriteProp); } }