Inheritance: MonoBehaviour
Esempio n. 1
0
    void OnGUI()
    {
        if (GUILayout.Button("Make Random Sprite"))
        {
            // fetch all the sheets including those that are not yet in the scene
            var sheets = Resources.LoadAll("SpriteSheets", typeof(SKSpriteSheet));

            var sheet = sheets[Random.Range(0, sheets.Length - 1)] as SKSpriteSheet;
            var index = Random.Range(0, sheet.containedImages.Length - 1);

            var sprite = SKSprite.createSprite(sheet, sheet.containedImages[index], SKSprite.SpriteAnchor.BottomLeft);
            sprite.transform.position = new Vector3(Random.Range(0, Screen.width), Random.Range(0, Screen.width), _zIndexForCreatedSprites--);
        }


        if (GUILayout.Button("Make Named Sprite (devil1)"))
        {
            var sprite = SKSprite.createSprite("images2", "devil1", SKSprite.SpriteAnchor.BottomLeft);
            sprite.transform.position = new Vector3(Random.Range(0, Screen.width), Random.Range(0, Screen.width), _zIndexForCreatedSprites--);
        }


        if (GUILayout.Button("Play Gai's Animation"))
        {
            var go     = GameObject.Find("gai");
            var sprite = go.GetComponent <SKSprite>();
            sprite.startAnimation("gai");
        }


        if (GUILayout.Button("Flip Gai Sprite"))
        {
            var go     = GameObject.Find("gai");
            var sprite = go.GetComponent <SKSprite>();
            sprite.flipHorizontally();
        }
    }
Esempio n. 2
0
 public SKSpriteAnimation(SKSprite sprite)
 {
     _sprite = sprite;
 }
Esempio n. 3
0
 void Awake()
 {
     _caveManDude = GameObject.Find("dude").GetComponent <SKSprite>();
 }
Esempio n. 4
0
    public override void OnInspectorGUI()
    {
        //base.OnInspectorGUI();
        _sprite = (SKSprite)target;

        // sprite properties
        if (_sprite.spriteSheet != null)
        {
            _sprite.desiredSize = EditorGUILayout.Vector2Field("Desired Size", _sprite.desiredSize);

            if (GUILayout.Button("Set Size to Image Size"))
            {
                Undo.RegisterUndo(_sprite, "Undo Make Pixel Perfect");
                _sprite.desiredSize = _sprite.pixelPerfectHDSize;
                GUI.changed         = true;
            }
        }
        _sprite.tintColor = EditorGUILayout.ColorField("Tint Color", _sprite.tintColor);
        _sprite.anchor    = anchorSelector(_sprite.anchor, "Sprite Anchor");


        // sprite sheet
        var spriteSheets            = SKTextureUtil.getAllSpriteSheets().Select(x => x.name).ToList();
        var spriteSheetSeletedIndex = 0;

        if (_sprite.spriteSheet == null)
        {
            spriteSheets.Insert(0, "Choose Sprite Sheet");
        }
        else
        {
            // we have a sprite sheet. we want it to be selected
            spriteSheetSeletedIndex = Array.IndexOf(spriteSheets.ToArray(), _sprite.spriteSheet.name);
        }

        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Sprite Sheet");
        var newSpriteSheetIndex = EditorGUILayout.Popup(spriteSheetSeletedIndex, spriteSheets.ToArray());

        EditorGUILayout.EndHorizontal();

        if (newSpriteSheetIndex != spriteSheetSeletedIndex)
        {
            _sprite.spriteSheet       = SKTextureUtil.getAllSpriteSheets().Where(x => x.name == spriteSheets[newSpriteSheetIndex]).Select(x => x).First();
            _sprite.renderer.material = _sprite.spriteSheet.material;
            _sprite.sourceImageName   = _sprite.spriteSheet.containedImages[0];
        }



        if (_sprite.spriteSheet != null)
        {
            var currentIndex = -1;

            var currentImage = _sprite.spriteSheet.containedImages.Where(item => _sprite.sourceImageName != null && item.EndsWith(_sprite.sourceImageName)).FirstOrDefault();
            if (currentImage != null)
            {
                currentIndex = Array.IndexOf(_sprite.spriteSheet.containedImages, currentImage);
            }

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Sprite Name");
            var newIndex = EditorGUILayout.Popup(currentIndex, _sprite.spriteSheet.containedImages);
            EditorGUILayout.EndHorizontal();

            if (currentIndex != newIndex)
            {
                var selectedImage = _sprite.spriteSheet.containedImages[newIndex];
                var textureInfo   = _sprite.spriteSheet.textureInfoForSourceImage(selectedImage);

                _sprite.pixelPerfectHDSize = textureInfo.size;
                _sprite.desiredSize        = textureInfo.size;
                _sprite.sourceImageName    = selectedImage;
                _sprite.Awake();
            }
        }


        GUILayout.Space(10);

        if (_sprite.spriteSheet != null)
        {
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Refresh Sprite Sheet"))
            {
                _sprite.spriteSheet.refreshSourceImages();
                refreshAllSprites();
            }


            // save colors so we can reset after making the destructive button
            var previousContentColor = GUI.contentColor;
            var previousBGColor      = GUI.backgroundColor;
            GUI.contentColor    = Color.red;
            GUI.backgroundColor = Color.red;

            if (GUILayout.Button("Delete Sprite Sheet"))
            {
                if (EditorUtility.DisplayDialog("SpriteKit Destruction Action Warning", "Are you sure you want to delete this sprite sheet?", "Yes, I'm Sure", "No!"))
                {
                    // kill all assets associated with this sprite sheet
                    var material = _sprite.spriteSheet.getMaterial(false);
                    AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(material.mainTexture));

                    if (_sprite.spriteSheet.hasHdAtlas)
                    {
                        material = _sprite.spriteSheet.getMaterial(true);
                        AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(material.mainTexture));
                    }

                    // all done with the textures so now we kill the material
                    AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(material));

                    // find any animations that reference this sprite sheet
                    var allSpriteAnimations = SKTextureUtil.getAllSpriteAnimations().Where(anim => anim.spriteSheet == _sprite.spriteSheet).ToArray();
                    foreach (var animation in allSpriteAnimations)
                    {
                        AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(animation));
                    }

                    AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(_sprite.spriteSheet));
                    _sprite.spriteSheet     = null;
                    _sprite.sourceImageName = null;
                }
            }
            GUILayout.EndHorizontal();
            GUI.contentColor    = previousContentColor;
            GUI.backgroundColor = previousBGColor;
        }


        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            _sprite.Awake();
        }
    }
Esempio n. 5
0
    private float _totalElapsedTime; // total elapsed time of the entire animation

    #endregion Fields

    #region Constructors

    public SKSpriteAnimation( SKSprite sprite )
    {
        _sprite = sprite;
    }
Esempio n. 6
0
 void Awake()
 {
     _caveManDude = GameObject.Find( "dude" ).GetComponent<SKSprite>();
 }