Beispiel #1
0
 private void OnEnable()
 {
     m_energyTargets = ReorderableListHelpers.CreateGenericExpandedReorderableList(serializedObject, serializedObject.FindProperty(m_energyTargetsField), 0, 16);
 }
Beispiel #2
0
    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;
        };
    }