Esempio n. 1
0
    Game.GameObject saveMapObject(MapObject mapObject, int layer, int x, int y)
    {
        Game.GameObject gameObject = mapObject.save();

        Game.Transform transform = new Game.Transform();
        transform.Position.X = x * gameCellSize;
        transform.Position.Y = y * gameCellSize;
        gameObject.Components.Add(transform);

        if (mapObject.mainSprite)
        {
            Game.Sprite sprite     = new Game.Sprite();
            Rect        spriteRect = mapObject.mainSprite.rect;
            sprite.Dimensions.Left = (int)spriteRect.x;
            sprite.Dimensions.Top  = (int)spriteRect.y;
            if (spriteRect.width < mapObject.mainSprite.texture.width)
            {
                sprite.Dimensions.Top = (int)(mapObject.mainSprite.texture.height - spriteRect.y - spriteRect.height);
            }
            sprite.layer = layer;
            var spriteTextureGUID = StringToGUID(AssetDatabase.GetAssetPath(mapObject.mainSprite.texture));
            if (!gameTextures.ContainsKey(spriteTextureGUID.ToString()))
            {
                gameTextures.Add(spriteTextureGUID.ToString(), mapObject.mainSprite.texture);
            }
            sprite.Texture.textureAssetGUID = spriteTextureGUID.ToString();
            gameObject.Components.Add(sprite);
        }

        gameObject.name = mapObject.objectName;

        return(gameObject);
    }
 void Start()
 {
     //初始化
     m_origin        = transform.localPosition;
     m_selfTransform = this.transform;
 }