private void OnEnable() { m_energyTargets = ReorderableListHelpers.CreateGenericExpandedReorderableList(serializedObject, serializedObject.FindProperty(m_energyTargetsField), 0, 16); }
private void OnEnable() { const float optionsHeight = (16 + 16 + 16 + 8 + 8); m_logos = ReorderableListHelpers.CreateGenericReorderableList(serializedObject, serializedObject.FindProperty(LogosPropName)); m_logos.elementHeightCallback = null; m_logos.elementHeight = optionsHeight + 30; m_logos.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { var prop = m_logos.serializedProperty.GetArrayElementAtIndex(index); var sprite = prop.FindPropertyRelative(SpritePropName); var duration = prop.FindPropertyRelative(DurationPropName); var fadeIn = prop.FindPropertyRelative(FadeInPropName); var fadeOut = prop.FindPropertyRelative(FadeOutPropName); var color = prop.FindPropertyRelative(ColorPropName); var scale = prop.FindPropertyRelative(ScalePropName); var position = rect; var labelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 0.5f * labelWidth; { var spriteRect = position; spriteRect.width = spriteRect.height; spriteRect.min += new Vector2(2, 2); spriteRect.max -= new Vector2(2, 2); position.xMin += spriteRect.width + 10; var logo = sprite.objectReferenceValue as Sprite; if (logo == PlayerSettings.SplashScreenLogo.unityLogo) { DrawSprite(spriteRect, logo, color.colorValue); scale.floatValue = 1 / 3f; } else { EditorGUI.ObjectField(spriteRect, sprite, typeof(Sprite), GUIContent.none); scale.floatValue = 1.0f; } } position.yMin += (position.height - optionsHeight) / 2; { var durationRect = position; durationRect.height = 16; position.yMin += durationRect.height + 8; EditorGUI.PropertyField(durationRect, duration); } { var fadePosition = position; fadePosition.height = 16; position.yMin += fadePosition.height + 8; { var fadeInRect = fadePosition; fadeInRect.width /= 2; fadePosition.xMin += fadeInRect.width + 8; EditorGUI.PropertyField(fadeInRect, fadeIn); } { var fadeOutRect = fadePosition; EditorGUI.PropertyField(fadeOutRect, fadeOut); } } { var colorRect = position; colorRect.height = 16; EditorGUI.PropertyField(colorRect, color); } EditorGUIUtility.labelWidth = labelWidth; }; }