Table of Contents

Use a script

Beginner Programmer

To use a script, add it to an entity as a component. You can do this in Game Studio or in code. Stride runs scripts when the entity they are attached to loads.

You can add a single script to as many entities as you need. You can also add multiple scripts to single entities; in this case, Stride creates multiple instances of the script. This means the same script can have different values in its public properties and fields.

Add a script in Game Studio

There are three ways to add scripts to entities in Game Studio:

  • drag the script from the asset view to the entity tree
  • drag the script from the asset view to the entity properties
  • add the script in the property grid

Drag to the entity tree

This method automatically creates a new entity that contains the script.

  1. In the solution explorer (in the bottom left by default), select the assembly that contains your script. Game Studio shows your script in the asset view.

    Script in asset folder

  2. Drag the script from the asset view to the entity tree.

Game Studio adds an entity to your scene, with the script as a component on the entity.

Entity tree

Drag to the property grid

  1. In the entity tree (on the left by default), or in the scene, select the entity you want to add the script to.

  2. In the solution explorer (in the bottom left by default), select the assembly that contains your script. Game Studio shows your script in the asset view.

    Script in asset folder

  3. Drag the script from the asset view to the property grid.

    Game Studio adds the script to the entity.

Add the script in the property grid

  1. In the scene editor, select the entity you want to add the script to.

    Select an entity

  2. In the property grid (on the right by default), click Add component and select the script you want to add.

    Add script component

    Game Studio adds the script to the entity.

Note

You can customize where scripts appear in the dropdown using the ComponentCategoryAttribute:

[ComponentCategory("My Startup Scripts")]
public class SampleStartupScript : StartupScript
{
    public override void Start()
    {
        // Do some stuff during initialization
    }
}

Add a script from code

The code below adds a script to an entity.

// myEntity is an existing entity in the scene; myAsyncScript is the script you want to add to the entity
myEntity.Add(new myAsyncScript());

See also