[SOLVED] Create Sprite programmatically

Example: https://playcanvas.com/editor/scene/1174939

// initialize code called once per entity
CreateSprite.prototype.initialize = function() {
    var textureAsset = this.app.assets.find('512x512 v2.png', 'texture');
    var app = this.app;

    var texture = textureAsset.resource;
    texture.addressU = pc.ADDRESS_CLAMP_TO_EDGE;
    texture.addressV = pc.ADDRESS_CLAMP_TO_EDGE;
    texture.minFilter = pc.FILTER_NEAREST;
    texture.magFilter = pc.FILTER_NEAREST;

    var atlas = new pc.TextureAtlas();
    atlas.frames = {
        "0": {
            rect: new pc.Vec4(0, 0, 512, 512),
            pivot: new pc.Vec2(0.5, 0.5)
        }
    };
    atlas.texture = texture;

    var sprite = new pc.Sprite(app.graphicsDevice, {
        atlas: atlas,
        frameKeys: '0',
        pixelsPerUnit: 100,
        renderMode: pc.SPRITE_RENDERMODE_SIMPLE
    });

    var spriteAsset = new pc.Asset('sprite', 'sprite', { url: '' });
    spriteAsset.resource = sprite;
    spriteAsset.loaded = true;
    app.assets.add(spriteAsset);

    var entity = new pc.Entity();
    entity.addComponent('sprite', {
        type: pc.SPRITETYPE_SIMPLE,
        spriteAsset: spriteAsset,
    });

    this.entity.addChild(entity);
};
1 Like