// 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(); } }
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; }