Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    Use sprites

    Intermediate Programmer

    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

    1. 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.

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

      Sprite sheet

      Game Studio adds a Sprite component to the entity.

    3. 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

    Property Function
    Source The source image file for the sprite
    Type Sprites have 3D space in the scene.

    Billboards always face the camera and appear fixed in 3D space.

    Color Applies a color to the sprite
    Intensity The intensity by which the color is scaled (mainly used for rendering LDR sprites in HDR scenes)
    Premultiply alpha Premultiply color components by their alpha component
    Ignore depth Ignore the depth of other elements in the scene when rendering the sprite. This always places the sprite on top of previous elements.
    Alpha cutoff Ignore pixels with low alpha values when rendering the sprite
    Sampler The texture sampling method used for the sprite: Point (nearest), Linear, or Anisotropic
    Swizzle How the color channels are accessed.

    Default leaves the image unchanged (finalRGB = originalRGB)

    Normal map uses the color channels as a normal map

    Grayscale (alpha) uses only the R channel (finalRGBA = originalRRRR), so the sprite is red

    Grayscale (opaque) is the same as Grayscale (alpha), but uses a value of 1 for the alpha channel, so the sprite is opaque

    Render group Which 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.

    using Stride.Rendering.Sprites;
    
    public class Animation : SyncScript
    {
       // Declared public member fields and properties are displayed in Game Studio.
       private SpriteFromSheet sprite;
       private DateTime lastFrame;
    
       public override void Start()
       {
           // Initialize the script.
           sprite = Entity.Get<SpriteComponent>().SpriteProvider as SpriteFromSheet;
           lastFrame = DateTime.Now;
       }
    
       public override void Update()
       {
          // Do something every new frame.
          if ((DateTime.Now - lastFrame) > new TimeSpan(0, 0, 1))
          {
             sprite.CurrentFrame += 1;
             lastFrame = DateTime.Now;
          }
       }
    }
    

    See also

    • Import sprite sheets
    • Edit sprites
    • Improve this Doc
    In This Article

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation