Exemplo n.º 1
0
        private static void DrawAdvancedSpriteField(AtlasTexture atlas, string spriteName)
        {
            if (atlas == null)
            {
                return;
            }

            if (atlas.Sprites.Count == 0)
            {
                EditorGUILayout.HelpBox("No sprites found", MessageType.Warning);
                return;
            }

            GUILayout.BeginHorizontal();
            {
                if (EditorLayoutTools.DrawPrefixButton("Sprite"))
                {
                    EditorAtlasPrefs.atlas          = atlas;
                    EditorAtlasPrefs.selectedSprite = spriteName;
                    AtlasSpriteSelector.Show(SelectSprite);
                }

                EditorGUILayout.SelectableLabel(spriteName, new GUIStyle("TextArea"), GUILayout.Height(18f));
            }
            GUILayout.EndHorizontal();
        }
Exemplo n.º 2
0
        private void CustomInspector()
        {
            EditorGUILayout.Separator();

            EditorGUI.BeginChangeCheck();

            var atlasTexture = (AtlasTexture)EditorGUILayout.ObjectField("AtlasTexture", atlasTextureImage.Atlas, typeof(AtlasTexture), false);

            if (EditorGUI.EndChangeCheck())
            {
                UnityEditorUtility.RegisterUndo("AtlasTextureImage Undo", instance.atlasTextureImage);
                Reflection.SetPrivateField(atlasTextureImage, "atlas", atlasTexture);
            }

            if (atlasTextureImage.Atlas != null)
            {
                EditorGUILayout.Separator();

                if (atlasTextureImage.Atlas.Sprites.Any())
                {
                    using (new GUILayout.HorizontalScope())
                    {
                        if (EditorLayoutTools.DrawPrefixButton("Sprite"))
                        {
                            EditorAtlasPrefs.atlas          = atlasTextureImage.Atlas;
                            EditorAtlasPrefs.selectedSprite = atlasTextureImage.SpriteName;
                            AtlasSpriteSelector.Show(SelectSprite);
                        }

                        if (!string.IsNullOrEmpty(atlasTextureImage.SpriteName))
                        {
                            EditorGUILayout.SelectableLabel(atlasTextureImage.SpriteName, EditorStyles.textArea, GUILayout.Height(18f));
                        }
                    }
                }
                else
                {
                    EditorGUILayout.HelpBox("No sprites found", MessageType.Warning);
                }
            }

            EditorGUILayout.Separator();
        }