コード例 #1
0
    // show the sprite selector
    static public void Show(SVGSpriteAssetFile spriteAsset, OnPivotEditedCallback callback)
    {
        // close the current selector instance, if any
        SVGPivotEditor.CloseAll();

        if (spriteAsset != null)
        {
            SVGPivotEditor pivotEditor = SVGPivotEditor.CreateInstance <SVGPivotEditor>();
            SVGPivotEditor.Init(pivotEditor, spriteAsset, spriteAsset.SpriteData.Pivot, spriteAsset.SpriteData.Border, callback);
            pivotEditor.ShowEditor();
        }
    }
コード例 #2
0
    private static void Init(SVGPivotEditor editor, SVGSpriteAssetFile spriteAsset, Vector2 pivot, Vector4 border, OnPivotEditedCallback callback)
    {
        float v;
        Rect  spriteRect = spriteAsset.SpriteData.Sprite.rect;
        float minDim     = Math.Min(spriteRect.width, spriteRect.height);

        // keep track of the sprite and the input/output pivot
        editor.m_SpriteAsset = spriteAsset;
        editor.m_Pivot.Set(pivot.x, pivot.y);
        editor.m_Border              = border;
        editor.m_SpritePreviewWidth  = spriteRect.width;
        editor.m_SpritePreviewHeight = spriteRect.height;
        // adapt window dimension
        if (minDim < SVGPivotEditor.SPRITE_PREVIEW_MIN_DIMENSION)
        {
            float scl = SVGPivotEditor.SPRITE_PREVIEW_MIN_DIMENSION / minDim;
            editor.m_SpritePreviewWidth  *= scl;
            editor.m_SpritePreviewHeight *= scl;
        }
        // we must not exceed screen resolution (width)
        v = Screen.currentResolution.width * 0.9f;
        if (editor.m_SpritePreviewWidth > v)
        {
            float scl = v / editor.m_SpritePreviewWidth;
            editor.m_SpritePreviewWidth  *= scl;
            editor.m_SpritePreviewHeight *= scl;
        }
        v = Screen.currentResolution.height * 0.9f;
        if (editor.m_SpritePreviewHeight > v)
        {
            float scl = v / editor.m_SpritePreviewHeight;
            editor.m_SpritePreviewWidth  *= scl;
            editor.m_SpritePreviewHeight *= scl;
        }

        editor.m_SpritePreviewWidth  = Mathf.Round(editor.m_SpritePreviewWidth);
        editor.m_SpritePreviewHeight = Mathf.Round(editor.m_SpritePreviewHeight);
        editor.m_WindowWidth         = editor.m_SpritePreviewWidth;
        // we must ensure that pivot and border controls are already visible
        if (editor.m_WindowWidth < 190)
        {
            editor.m_WindowWidth = 190;
        }
        editor.m_WindowHeight = editor.m_SpritePreviewHeight + SVGPivotEditor.BUTTONS_HEIGHT + (SVGPivotEditor.EDIT_FIELDS_HEIGHT * 3);
        // set title
        editor.titleContent = new GUIContent("Sprite editor");
        // set callback
        editor.m_Callback = callback;
    }