User Guide

SCEMA uses scriptable objects (called location) to store all the relevant information of a scene. Such as namesplash image, the scene asset itself, and definition of required additive scenes.

Loading a scene is easy: call the Enter() method of the location object.

SCEMA supports additive scene loading. For example, you can create multiple world scene and load the UI on top of them.

From a technical perspective, the asset opens an empty scene first, called bootstrap. Then it loads the location and other scenes in additive mode.

Play Video
creating a location object

For every scene you want to use as a base scene, you have to create a location object.

Here is a rule of thumb to decide which scene can be a location. When the sentence “Entering the [scene name]” makes sense in your game world, you should use it as a location

Example: a tavern is a location because “Entering a tavern” makes sense. The UI scene is an additive instead.

creating a location object

You can open the SCEMA window from the menu:

Window / RunemarkStudio / SCEMA

The main screen of the window is a list of our location objects. With the buttons you can:

  • Open the scene to edit
  • Find the location object
  • Add the scene to the Build Settings
  • Remove the scene from the Build Settings

The warning icon in the header indicates problems with the asset. Clicking on it opens the Setup Wizard tab. Keep clicking on the “Fix this problem” button until all the errors are gone.

On this tab, you can assign the LoadingScreenUI prefab and the Min Loading Time. The latter is a time in seconds the loading screen should be visible even if the loading finished.

Additive scenes are usually UI or gameplay mechanics. You can set on the location object which additives you want to load along with it. Enabling the Persistent option will mark all the game objects on this scene as DontDestroyOnLoad.

scema loading screen inspector

You can find the loading screen prefab under the
Assets/RunemarkStudio/SCEMA/Example/Prefabs folder.

You can tweak the settings for your needs in the inspector.

  • Show Total Progress: Check this option to show summarized progress of all operations.
  • Close Condition: Automatically means the loading screen closes when the scene loading finishes. If you set it to On Key Pressed, you can define a key to close it.
  • Hint Database: Scriptable object database where you store your hints. (see below)
  • Hint Prefix: This text appears before every hint.
  • UI Elements: Here, you can assign different UI parts. You can leave any of these elements empty if you don't need it.
scema hints object

SCEMA contains a simple random hint solution. By default, you can find it under the Assets/RunemarkStudio/SCEMA/Example/Prefabs folder.

The loading screen chooses one random line from this list when activates.

If you need a more advanced way, study this solution to make your own.

Loading a scene defined in the location object is simple, call the Enter() method of that object. You can do it from an UnityEvent or ButtonEvent, or code like this:

public Location location;
void SomeFunctionToLoadLocation()
{
   location.Enter(); 
}