The World Designer Tool is an incredibly robust tool that reduces the normal pain that comes with working with a large quantity of individualized, segmented assets, which is par for the course with streamable game design.
Not only does it allow you to easily make changes to existing streamable Asset Chunks, it allows you to generate new assets and destroy old ones (that are no longer needed) on the fly with very minimal effort.
In addition, through the use of customizable Asset Managers, you can easily add support for new asset types that Unity may add in the future, or custom Asset Types that are proprietary to your project.
The World Designer can be launched via the World Designer Tab on the World Component when that World has a valid editable Base World Grouping. Do note, the scene that the World is in will need to be saved before you can launch the World Designer Tool! You will also need to ensure that World Designer Data exists before launching (more info can be found in the dedicated World Designer Data Section within this Chapter).
Generating the initial set of streamable assets can be a very simple process, especially if you have used the Terra Slicer tool or some other third party solution such as Gaia. But what if you want to make changes to these assets after the initial generation?
Do you really want to load each asset individually by dragging and dropping the asset prefab into the scene, or opening each scene asset individually? What a pain that would be!
One of the most powerful features built into the World Designer tool is the ability to easily load and unload Asset Chunks using a visual representation of your Streamable Grids Cells. You can even load pre-defined regions of Cells with a single button press, which gives you the power to effortlessly switch between editing different zones of your world.
To Load Asset Chunks, select the Cells you want to load Assets for and use one of the L buttons next to the LOD whose Asset Chunks you wish to Load. Use the U button to unload Asset Chunks associated with that LOD and the selected Cells. There are a few other buttons not associated with particular LODs you can also use to unload Asset Chunks.
--Special Note--
How Asset Chunks are loaded and unloaded is controlled by Asset Managers. You can perform secondary logic when assets are loaded or unloaded by creating custom Asset Managers.
You can load and unload Asset Chunks manually, however it may conflict with the Tool's internal tracking systems and cause issues, so we do not recommend it unless you absolutely require it.
The tool also makes saving assets very easy, which is especially useful when dealing with Cells that have multiple Asset Chunks. The tool automatically detects unsaved changes and marks each Cell visually to let you know they need to be saved. You can either configure the Tool to automatically save Asset Chunks when they are unloaded, or you can manually Save Asset Chunks using the Save Selected Cell Chunks button within the Editing Controls tab.
The default Scene Asset Managers have built in support for loading underlying prefab assets when it makes sense. By working and saving the underlying prefab asset, changes are reflected in both the underlying prefab asset and the prefab instances in the scenes. While you can disable this feature and edit the prefab instances in the scene assets themselves, doing so is not advised, as it will introduce disparity between the prefab instances in the scene and the underlying prefab assets.
--Special Note--
How Asset Chunks are saved is controlled by Asset Managers. You can support the saving of custom asset types or introduce alternative saving techniques by creating custom Asset Managers.
Sometimes you may have Asset Chunks that contain child objects (a forest chunk containing many trees, for instance), and you may wish to reposition those child objects within the scene. Or you may have game objects that you wish to remove completely, or you may have new objects that you have added but have not been associated with Streamable Cells. Under all these circumstances, game objects may need to be parented or un-parented from Cells' Root Asset Chunks.
While you can do this manually, the World Designer tool can handle moving, adding, and/or removing multiple child objects at once while keeping Asset Chunks well balanced (i.e., ensuring that each Asset Chunk belonging to a Cell has a roughly equal number of child objects). It will also automatically handle the saving of any modified Asset Chunks, the enabling of new Cells that are needed, the disabling of Cells that no longer have objects, and the destruction of empty Asset Chunks.
--Special Note--
How Asset Chunks are deleted from the Project is controlled by Asset Managers. You can support the deleting of custom asset types or introduce alternative deletion techniques by creating custom Asset Managers.
While the World Designer Tool is not capable of automatically creating new Asset Chunks on its own, it can interface with Asset Creators in order to requests new Asset Chunks be created. This is a powerful feature without which the manipulation operations described above would not be possible.
A Default Asset Creator is included with the Streamable Assets Manager, however you also have the power to add custom ones that add support for custom asset types or simply change the way in which Asset Chunks are created. Asset Creators are assigned on a per World Grouping and LOD level, so every LOD of every World Grouping can make use of a unique one. Please take a look at the Asset Creators Section within this Chapter if you want more information!
Interested in the Default Asset Creator instead?
The World Designer Tool offers an alternative way to enable and disable Streamable Grid Cells, which is especially useful for larger Streamable Grids where enabling and disabling the Cells becomes cumbersome using the Streamable Grid inspector.
The World Designer Tool also gives you the option of destroying any Asset Chunks associated with a Cell you are about to disable, which is a great way to ensure no Assets are left behind in limbo when disabling Cells.