Esempio n. 1
0
        void SetShowNativeSize(bool instant)
        {
            GImage.Type type           = (GImage.Type)m_Type.enumValueIndex;
            bool        showNativeSize = (type == GImage.Type.Simple || type == GImage.Type.Filled) && m_Sprite.objectReferenceValue != null;

            base.SetShowNativeSize(showNativeSize, instant);
        }
Esempio n. 2
0
        /// <summary>
        /// Draw the atlas and Image selection fields.
        /// </summary>

        protected void SpriteGUI()
        {
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(m_Sprite, m_SpriteContent);
            if (EditorGUI.EndChangeCheck())
            {
                var newSprite = m_Sprite.objectReferenceValue as Sprite;
                if (newSprite)
                {
                    GImage.Type oldType = (GImage.Type)m_Type.enumValueIndex;
                    if (newSprite.border.SqrMagnitude() > 0)
                    {
                        m_Type.enumValueIndex = (int)GImage.Type.Sliced;
                    }
                    else if (oldType == GImage.Type.Sliced)
                    {
                        m_Type.enumValueIndex = (int)GImage.Type.Simple;
                    }
                }
                (serializedObject.targetObject as GImage).DisableSpriteOptimizations();
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Sprites's custom properties based on the type.
        /// </summary>

        protected void TypeGUI()
        {
            EditorGUILayout.PropertyField(m_Type, m_SpriteTypeContent);

            ++EditorGUI.indentLevel;
            {
                GImage.Type typeEnum = (GImage.Type)m_Type.enumValueIndex;

                bool showSlicedOrTiled = (!m_Type.hasMultipleDifferentValues && (typeEnum == GImage.Type.Sliced || typeEnum == GImage.Type.Tiled));
                if (showSlicedOrTiled && targets.Length > 1)
                {
                    showSlicedOrTiled = targets.Select(obj => obj as GImage).All(img => img.hasBorder);
                }

                m_ShowSlicedOrTiled.target = showSlicedOrTiled;
                m_ShowSliced.target        = (showSlicedOrTiled && !m_Type.hasMultipleDifferentValues && typeEnum == GImage.Type.Sliced);
                m_ShowTiled.target         = (showSlicedOrTiled && !m_Type.hasMultipleDifferentValues && typeEnum == GImage.Type.Tiled);
                m_ShowFilled.target        = (!m_Type.hasMultipleDifferentValues && typeEnum == GImage.Type.Filled);

                GImage image = target as GImage;
                if (EditorGUILayout.BeginFadeGroup(m_ShowSlicedOrTiled.faded))
                {
                    if (image.hasBorder)
                    {
                        EditorGUILayout.PropertyField(m_FillCenter);
                        EditorGUILayout.PropertyField(m_SlicedCenter);
                    }
                }
                EditorGUILayout.EndFadeGroup();

                if (EditorGUILayout.BeginFadeGroup(m_ShowSliced.faded))
                {
                    if (image.sprite != null && !image.hasBorder)
                    {
                        EditorGUILayout.HelpBox("This Image doesn't have a border.", MessageType.Warning);
                    }
                }
                EditorGUILayout.EndFadeGroup();

                if (EditorGUILayout.BeginFadeGroup(m_ShowTiled.faded))
                {
                    if (image.sprite != null && !image.hasBorder && (image.sprite.texture.wrapMode != TextureWrapMode.Repeat || image.sprite.packed))
                    {
                        EditorGUILayout.HelpBox("It looks like you want to tile a sprite with no border. It would be more efficient to modify the Sprite properties, clear the Packing tag and set the Wrap mode to Repeat.", MessageType.Warning);
                    }
                }
                EditorGUILayout.EndFadeGroup();

                if (EditorGUILayout.BeginFadeGroup(m_ShowFilled.faded))
                {
                    EditorGUI.BeginChangeCheck();
                    EditorGUILayout.PropertyField(m_FillMethod);
                    if (EditorGUI.EndChangeCheck())
                    {
                        m_FillOrigin.intValue = 0;
                    }
                    switch ((GImage.FillMethod)m_FillMethod.enumValueIndex)
                    {
                    case GImage.FillMethod.Horizontal:
                        m_FillOrigin.intValue = (int)(GImage.OriginHorizontal)EditorGUILayout.EnumPopup("Fill Origin", (GImage.OriginHorizontal)m_FillOrigin.intValue);
                        break;

                    case GImage.FillMethod.Vertical:
                        m_FillOrigin.intValue = (int)(GImage.OriginVertical)EditorGUILayout.EnumPopup("Fill Origin", (GImage.OriginVertical)m_FillOrigin.intValue);
                        break;

                    case GImage.FillMethod.Radial90:
                        m_FillOrigin.intValue = (int)(GImage.Origin90)EditorGUILayout.EnumPopup("Fill Origin", (GImage.Origin90)m_FillOrigin.intValue);
                        break;

                    case GImage.FillMethod.Radial180:
                        m_FillOrigin.intValue = (int)(GImage.Origin180)EditorGUILayout.EnumPopup("Fill Origin", (GImage.Origin180)m_FillOrigin.intValue);
                        break;

                    case GImage.FillMethod.Radial360:
                        m_FillOrigin.intValue = (int)(GImage.Origin360)EditorGUILayout.EnumPopup("Fill Origin", (GImage.Origin360)m_FillOrigin.intValue);
                        break;
                    }
                    EditorGUILayout.PropertyField(m_FillAmount);
                    if ((GImage.FillMethod)m_FillMethod.enumValueIndex > GImage.FillMethod.Vertical)
                    {
                        EditorGUILayout.PropertyField(m_FillClockwise, m_ClockwiseContent);
                    }
                }
                EditorGUILayout.EndFadeGroup();
            }
            --EditorGUI.indentLevel;
        }