Weaver v5.0

  • 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 only GameObjects.
    • Improved MeshBuilder constructors and Compile 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.
  • Changed from Super Serial settings files to a single ScriptableObject asset.
  • Added [AnimationReference] attribute to make an int or string 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)
Then you can import the new version normally.


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.