A flexible system to import Notion databases into a Unity scriptable object for use in Unity game projects. Note: This is experimental. While functional, there may be issues or edge cases that are not covered. Updates will also be slow/infrequent.
Full documentation can be found here: https://carter.games/docs/notiondata/documentation.pdf
- Download databases of any size.
- Apply sorting and filters to data to order it just as it is in a Notion database view.
- Automatic parsing of data into their field types.
- Support for most useful Notion data properties.
- Automatic API key removal on build creation for security.
- System to reference assets in code without a direct inspector reference.
- None at the moment other than general support where needed.
Any string
convertible type should also support JSON for custom classes, but the mileage may vary. Best to just store raw data in these assets and convert the data with an override to the PostDataDownloaded()
method in the Notion Data Asset
.
Note that rollups are supported only when they show a property that is otherwise supported below:
Property type | Conversion types supported (Unity) |
---|---|
Title | string |
Text | string NotionDataWrapper(GameObject(Prefab)/Sprite/AudioClip) , List/Array of string , int , float , double , bool |
Number | int float double etc |
Toggle | bool |
Single-Select | string enum |
Multi-Select | string[] List<string> enum flags |
Rollup | Any supported in this table. |
Date | SerializableDateTime |
Release:
The most up-to-date version of the repo that is considered stable enough for public use.
https://github.com/CarterGames/NotionToUnity.git
Pre-release:
Used to prepare future releases before releasing them, checking for bugs mainly. Will have the latest features but may not be stable just yet. Use at your own risk.
https://github.com/CarterGames/NotionToUnity.git#pre-release
Import the package found in the releases section through the "Import custom package" right-click menu option in Unity's project tab.
Download the repo/clone it and import the files into your project manually.
Please refer to documentation for details on setup in your project & usage.