Creating a List

Pro Only: Weaver Lite allows you to try out asset lists in the Unity Editor, but they will always be empty in a runtime build unless you purchase Weaver Pro.

Creating and using an asset list is easy:

  1. Use the Assets/Create/Asset List menu item or Right Click in the Project window and select Create/Asset List.
  2. Set the Directory you want it to target. It will automatically target the directory it was created in by default.
  3. Select the Asset Type you want the list to include.
  • This requires the type of the list itself to be changed so it will show the Change List Type box which allows you to either select an existing list type if there is one for the chosen asset type, or allows you to generate a new list type.
  • Newly generated list type scripts are saved in the Output Directory specified in the Procedural Assets Panel, but you can move them anywhere you like after that.
  • Note that you need to set the Directory first because the dropdown menu will only show asset types that are actually in that folder
  • You can also manually create a class that inherits from AssetList<T> if you want to.
  1. Then you can reference the list you created like any other asset, such as with a serialized field, via Asset Injection, or using Resources.Load. For example, the MissileRain script simply has a [SerializeField] private MissileList _MissilePrefabs.

Asset Lists Panel

The Asset Lists panel in the Weaver Window shows every Asset List in your project as well as every Asset List Type (every script that inherits from AssetListBase).

Unfortunately due to technical limitations of Unity's serialization system, assets cannot be a generic type. This means that the Missiles example cannot simply make an AssetList<Missile>, it has to declare a non-generic type that inherits from it (MissileList : AssetList<Missile>) and use that type instead. To deal with this, the Change List Type box in the Asset List inspector streamlines the process of generating a new list type and the Asset Lists Panel shows all list types and makes it easy to delete old ones which are no longer used in the project.