Use sprites

IntermediateProgrammer

To add a sprite to a scene, add a sprite component to an entity. Afterwards, you can control the sprite with a script.

Add a sprite component

  • In the Scene Editor, select the entity you want to add a sprite to.
Tip

To create an entity, right-click the scene or Entity Tree and select Empty entity.

  • In the Property Grid, click Add component and select Sprite.

Sprite sheet

Game Studio adds a Sprite component to the entity.

  • From the Asset View, drag the sprite sheet to the Source field in the Sprite component:

Alternatively, click Hand icon (Select an asset):

Pick asset up

Then choose a sprite sheet:

Select an asset

Game Studio adds the sprite to the entity.

Sprite component properties

You can access the sprite component properties in the Property Grid.

Sprite component properties

PropertyFunction
SourceThe source image file for the sprite
TypeSprites have 3D space in the scene.Billboards always face the camera and appear fixed in 3D space.
ColorApplies a color to the sprite
IntensityThe intensity by which the color is scaled (mainly used for rendering LDR sprites in HDR scenes)
Premultiply alphaPremultiply color components by their alpha component
Ignore depthIgnore the depth of other elements in the scene when rendering the sprite. This always places the sprite on top of previous elements.
Alpha cutoffIgnore pixels with low alpha values when rendering the sprite
SamplerThe texture sampling method used for the sprite: Point (nearest), Linear, or Anisotropic
SwizzleHow the color channels are accessed.Default leaves the image unchanged (finalRGB = originalRGB)Normal map uses the color channels as a normal mapGrayscale (alpha) uses only the R channel (finalRGBA = originalRRRR), so the sprite is redGrayscale (opaque) is the same as Grayscale (alpha), but uses a value of 1 for the alpha channel, so the sprite is opaque
Render groupWhich render group the sprite belongs to. Cameras can render different groups. For more information, see Render groups and render masks.

Use sprites in a script

You can use scripts to render sprites at runtime. To do this, attach the script to an entity with a sprite component.

For information about how to add scripts to entities, see Use a script.

Code sample

This script displays a sprite that advances to the next sprite in the index every second. After it reaches the end of the sprite index, it loops.

  1. using Xenko.Rendering.Sprites;
  2. public class Animation : SyncScript
  3. {
  4. // Declared public member fields and properties are displayed in Game Studio.
  5. private SpriteFromSheet sprite;
  6. private DateTime lastFrame;
  7. public override void Start()
  8. {
  9. // Initialize the script.
  10. sprite = Entity.Get<SpriteComponent>().SpriteProvider as SpriteFromSheet;
  11. lastFrame = DateTime.Now;
  12. }
  13. public override void Update()
  14. {
  15. // Do something every new frame.
  16. if ((DateTime.Now - lastFrame) > new TimeSpan(0, 0, 1))
  17. {
  18. sprite.CurrentFrame += 1;
  19. lastFrame = DateTime.Now;
  20. }
  21. }
  22. }

See also