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

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

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

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

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

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

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

                ImageUI image = target as ImageUI;
                if (EditorGUILayout.BeginFadeGroup(m_ShowSlicedOrTiled.faded))
                {
                    if (image.hasBorder)
                    {
                        EditorGUILayout.PropertyField(m_FillCenter);
                    }
                }
                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 ((ImageUI.FillMethod)m_FillMethod.enumValueIndex)
                    {
                    case ImageUI.FillMethod.Horizontal:
                        m_FillOrigin.intValue = (int)(ImageUI.OriginHorizontal)EditorGUILayout.EnumPopup("Fill Origin", (ImageUI.OriginHorizontal)m_FillOrigin.intValue);
                        break;

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

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

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

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