Pro Only: Weaver Lite allows you to try out procedural assets in the Unity Editor, but the Asset Injection will not be available in a runtime build unless you purchase Weaver Pro. You can still use the generated assets as regular assets though.
By default, a procedural asset is saved using AssetDatabase.CreateAsset once your generator method returns it. Unfortunately, this doesn’t work for some asset types; a GameObject must be saved using the PrefabUtility class, a Texture must be encoded in a specific image format (such as png), and so on. This is what Asset Generators are for:
- You don’t need to call an Asset Generator yourself; Weaver will automatically pick the one that’s most appropriate for each asset type. However, you do need to be aware that certain asset types use different rules than others.
- Each Asset Generator targets a specific asset type, for which it defines the default file extension (which is used if you don’t specify a
FileExtensionin the[ProceduralAsset]attribute), as well as the return type and parameters you must use for the generator method. Weaver currently includes 5 Asset Generators:
| Class Name | Asset Type | File Extension | Return Type | Parameters |
|---|---|---|---|---|
AssetGenerator<T> |
Object |
.asset | T |
() |
PrefabGenerator |
GameObject* |
.prefab | GameObject |
() |
TextureGenerator |
Texture2D |
.png | Texture2D |
() |
TextGenerator |
TextAsset |
.txt | void |
(System.Text.StringBuilder) |
ScriptGenerator |
MonoScript |
.cs | void |
(System.Text.StringBuilder) |
AssetListGenerator |
AssetListBase |
.asset | IEnumerable<T> |
() |
- *
PrefabGeneratoris also used forComponenttypes. - You can define your own Asset Generator by making a class that inherits from
Weaver.AssetGenerator<T>. Weaver will automatically use your class whenever it generates a procedural asset of the specified typeT. - The Procedural Assets panel in the Weaver Window has a foldout to show the details of all Asset Generator types currently in your project.