Getting Started
Package Types
Scene Setup
Custom Collision, Layers, and Tags
Key Differences from Standard Unity3D development
Economy
Scripting
C# Scripting
Visual Scripting
Sync and Multiplayer
Components
Environment Settings Overrides
Render Pipeline Settings Overrides
Guidelines
Supported Features and Limitations
Support
Unity Packages with C# code require some changes to work with the Spatial Creator Toolkit, and there are some important limitations.
.asmdef), those need to be removed and any missing references must be resolved. Assemblies in an Editor folder do not need to be removed.Editor folder, or that you use a #if UNITY_EDITOR directive.You can find a list of third-party packages with porting instructions here, including packages such as tweening and car control packages.
Spatial does not provide access to Camera.Main; instead i provides its own camera API. For more details on this, and on using Cinemachine, see the Camera documentation.
Spatial does not support PlayerPrefs. Instead we have a cloud-save system we call the DataStore.
Saving to the DataStore creates a server request so we rate limit writes. This means inside your game-loop you should be reading/writing your save data to an intermediary C# object which you periodically write to the DataStore.
For more information view the DataStore API Reference.
A common technique for referencing assets in Unity is to drop them all inside a /Resources folder then load them at runtime with Resources.Load(.... Unfortunately, Unity3D does not allow Asset Bundles to add contents to Resources, so Spatial does not allow Creator Toolkit projects to use Resources.
Instead, you can re-create the Resources.Load workflow with ScriptableObjects. Create an object that holds a collection of UnityEngine.Objects and then add the assets you want to reference to it.
[CreateAssetMenu(fileName = "NewAssetCollection", menuName = "AssetCollection")]
public class AssetCollection : ScriptableObject
{
public UnityEngine.Object[] assets;
}
You can then search through the AssetCollection.assets by object name similar to Resources.Load.
<aside>
<img src="/icons/light-bulb_red.svg" alt="/icons/light-bulb_red.svg" width="40px" /> Remember that packages uploaded only contains the dependencies of a scene. If your AssetCollection is not directly referenced by a GameObject in the scene it will not be included.
</aside>
A key limitation of Spatial Creator Toolkit projects is they can only have one scene. This means that if you’re used to creating several scenes for different levels, or even reloading the same scene to reset the game, you’ll have to design around this limitation.