public static void Show(SpriteAtlas spriteAtlas, string defaultSpriteName, OnSpriteSelected callback) { if (spriteSelector != null) { spriteSelector.Close(); spriteSelector = null; } AtlasSpriteSelector selector = ScriptableWizard.DisplayWizard <AtlasSpriteSelector>("Select a Sprite"); selector.atlas = spriteAtlas; selector.mSelectedSpriteName = defaultSpriteName; selector.mSpriteSeletectedCallback = callback; }
private void DrawSpritePopup(SpriteAtlas atlas, SerializedProperty spriteProperty) { GUIContent label = new GUIContent(spriteProperty.displayName, spriteProperty.tooltip); string spriteName = string.IsNullOrEmpty(spriteProperty.stringValue) ? "----" : spriteProperty.stringValue; using (new EditorGUI.DisabledGroupScope(!atlas)) { using (new EditorGUILayout.HorizontalScope()) { EditorGUILayout.PrefixLabel(label); if (GUILayout.Button(string.IsNullOrEmpty(spriteName) ? "-" : spriteName, "minipopup") && atlas) { AtlasSpriteSelector.Show(atlas, spriteName, (selectedSpriteName) => { OnSpriteSelectedCallback(spriteProperty, selectedSpriteName); }); } } } }
void OnDisable() { spriteSelector = null; }
void OnEnable() { spriteSelector = this; }