示例#1
0
    public void SetupGameObject(GameObject go)
    {
        if (sprite != null)
        {
            SpriteRenderer spriteRenderer = go.GetComponent <SpriteRenderer>();
            if (spriteRenderer == null)
            {
                spriteRenderer = go.AddComponent <SpriteRenderer>();
            }

            spriteRenderer.sprite = sprite;

            if (FlagUtil.IsSet(tileFlags, ETileAttribute.FLIPX))
            {
                spriteRenderer.flipX = true;
            }
            if (FlagUtil.IsSet(tileFlags, ETileAttribute.FLIPY))
            {
                spriteRenderer.flipY = true;
            }

            if (FlagUtil.IsExactly(tileFlags, (ETileAttribute.ROTATE180 | ETileAttribute.ROTATE90)))
            {
                go.transform.Rotate(Vector3.back * 270);
            }
            else if (FlagUtil.IsExactly(tileFlags, ETileAttribute.ROTATE180))
            {
                go.transform.Rotate(Vector3.back * 180);
            }
            else if (FlagUtil.IsExactly(tileFlags, ETileAttribute.ROTATE90))
            {
                go.transform.Rotate(Vector3.back * 90);
            }
        }
    }
示例#2
0
    public List <TileSprite> CreateTileSprites()
    {
        List <TileSprite> tileSprites = new List <TileSprite>();

        if (sprite == null)
        {
            return(tileSprites);
        }

        tileSprites.Add(new TileSprite(sprite));

        for (ETileAttribute eFlag = ETileAttribute.FLIPX; eFlag < spriteFlags; ++eFlag)
        {
            if (FlagUtil.IsExactly(spriteFlags, eFlag))
            {
                tileSprites.Add(new TileSprite(sprite, eFlag));
            }
        }

        return(tileSprites);
    }