Version: 2.0.0-alpha.8

Level structure and rooms data

Level structure#

In the image below, we can see the structure of a level. The game object that holds the level has two children - Tilemaps game object and Rooms game object:

  • Tilemaps game object holds all the tilemap layers.
  • Rooms game object holds instances of all room templates that are used in the level. Name of each of the children is formed as "{roomName} - {roomTemplate}" to make it easier to find a specific room when debugging.
Structure of the level

Note: If you want to retrieve any of the game objects from a script, the best-practice is to use the GeneratorConstants static fields instead of using hardcoded names.

Rooms information#

The generator also produces information about individual rooms in the level - their positions, which room template is used, what are neighbours of the room, etc. All this information is exposed through the RoomInstance class.

There are at least two ways of getting an instance of this class:

  • From the game object of the room. All the room template instances that were described in the previous section have a RoomInfo component attached. This component has a reference to the corresponding RoomInstance.
  • From a post-processing task. Each custom post-processing task receives an instance of the GeneratedLevel class which has a method GetRoomInstances() that can be used to retrieve all the room instances from the level.