Exemple #1
0
        private void DrawSpritePreview(Rect rect)
        {
            if (Event.current.type != EventType.Repaint)
            {
                return;
            }

            if (selectedIndex == kInvalidMinimum)
            {
                return;
            }

            var sprites = angleRanges[selectedIndex].sprites;

            if (sprites.Count == 0)
            {
                return;
            }

            var selectedSpriteIndex = GetPreviewSpriteIndexFromSessionState(selectedIndex);

            if (selectedSpriteIndex == kInvalidMinimum)
            {
                return;
            }

            var sprite = sprites[selectedSpriteIndex];

            if (sprite == null)
            {
                return;
            }

            if (m_PreviewSprite != sprite)
            {
                m_PreviewSprite = sprite;
                EditorSpriteGUIUtility.DrawSpriteInRectPrepare(rect, sprite, EditorSpriteGUIUtility.FitMode.Tiled, true, true, previewSpriteMesh);
            }

            var material = EditorSpriteGUIUtility.spriteMaterial;

            material.mainTexture = EditorSpriteGUIUtility.GetOriginalSpriteTexture(sprite);

            GUI.BeginClip(rect);
            EditorSpriteGUIUtility.DrawMesh(previewSpriteMesh, material, rect.size * 0.5f, Quaternion.AngleAxis(m_PreviewAngle, Vector3.forward), new Vector3(1f, -1f, 1f));
            GUI.EndClip();
        }