- Replaced Asset Linker with Asset Injection system which is much more flexible, efficient, and convenient to use.
- Assets are now found using a name based fuzzy search algorithm or assigned manually. Once found, the asset reference is retained so the asset can be moved freely anywhere in the project without needing to regenerate a procedural script and update user scripts.
- Reworked the entire Procedural Asset system to be based on Asset Injection instead of using the
Asset<T>
class. - Changed the default procedural asset output directory to Assets/Procedural Assets.
- You can now create procedural prefabs using
Component
types instead of onlyGameObject
s. - Improved
MeshBuilder
constructors andCompile
methods. - Improved
Kybernetik.ProceduralScripting
system: added namespace support, type inheritance, and member attributes.
- Replaced static Asset Collections with Asset Lists which are
ScriptableObject
assets so they can be referenced normally. - Moved Kybernetik.Core.dll into the Weaver folder.
- Merged all Linker DLLs into Weaver.dll.
- Renamed Linker systems to Project Constants.
- Individual Project Constants scripts can be disabled via toggles in the Weaver Window.
- Unified all editor windows into the Weaver Window.
- Changed from Super Serial settings files to a single
ScriptableObject
asset. - Added
[AnimationReference]
attribute to make anint
orstring
field show a popup with a list of all animation state/parameter hashes/names. - Optimised Animation Constants to gather
AnimatorController
assets in the background so it doesn't block the main thread when there are many or large controllers in the project. - Added Object Pooling system.
- Added
CustomInspector
component which takes a delegate for drawing its inspector GUI. - Completely replaced all the examples.
- Changed from PDF to online documentation generated by Wyam.
Upgrading to Weaver 5
You must delete any previous versions of Weaver before importing Weaver 5, otherwise you will get major errors that prevent anything from working. This includes the following folders (unless you have moved them):
- Assets/Weaver (the old Procedural Asset Output Directory and examples)
- Assets/Plugins/Kybernetik (the old location of Kybernetik.Core.dll)
- Assets/Plugins/Weaver (Weaver itself)
Weaver 5 introduces some massive changes from previous versions; the Asset Linker system has been replaced by Asset Injection and the procedural asset system has been rebuilt using it. The new system is much more flexible and efficient for development since it provides strong links to assets but still allows you to move them around in your project freely.
The declaration of Procedural Assets has changed:
// Weaver 4.
public static readonly Asset<GameObject> Player = "Player";
private static GameObject GeneratePlayer()
{
// ...
}
// Weaver 5.
[AssetReference]
[ProceduralAsset]
public static readonly GameObject Player;
private static GameObject GeneratePlayer()
{
// ...
}
The Asset Collection system that was part of the Asset Linker has also been replaced by Asset Lists.