- Configure .gitignore
- Relevent Unity Editor settings
- Setup Git Large File Storage (LFS)
Unity Tutorials - Intro to Scriptable Objects
- Can be used without attaching to a GameObject
- Saved as assets (good for version control!)
- Helps with memory management by storing references to data instead of copies
Unity Blog - Making cool stuff with ScriptableObjects
- Asset to hold custom data, or execute code
- Enables a very “pluggable architecture”
- Unity is a C++ engine with a .NET layer (from first video in link)
Unity Blog - Serialization in Unity
- Serialization is a core part of Unity
- System written in C++, one of the main ways data is communicated between C++ and .NET layer
- May behave differently than expected (by a C# dev) due to performance requirements
- It is possible to use serializer callbacks for custom types that are not compatible with default serialization behavior
Unity tutorials - Assets, Objects and serialization
- Asset is a file on disk located in the Unity project’s Asset folder
- UnityEngine.Object (Object) is a “set of serialized data cellectively describing a specific instance of a resource”
- ScriptableObject and MonoBehaviour are “special” Objects
- ScriptableObject lets dev define their own data types
- MonoBehaviour is a wrapper that links to a MonoScript
- Storage I/O of serialized data for Components and GameObjects in the hierarchy is the “dominant time cost” at load time