An update has been released for the cart library. It’s recommended to do a clean install when installing this version of the code base. This update also adds a load of new tweaks and the ability to import the library with Unity’s package manager using the git URL.

To facilitate this change, a bit of the asset backend needed updating to allow for it. Mostly, the data assets used for the library could not be in the package structure due to them being reset whenever it is updated.

To use this setup, just copy the URL below and paste it into the box that appears when selecting the git URL option in Unity’s package manager and add it.

Release

https://github.com/CarterGames/The-Cart.git

Pre-release (if you want to try out the latest, maybe buggy)

https://github.com/CarterGames/The-Cart.git#pre-release
Additions:
  • New interface referencing setup added to allow interface types to be referenced in the inspector.
  • New scene referencing setup added to allow the references of scene assets in the inspector.
  • Added new Indexof method for arrays, works the same as the list counterpart in functionality.
  • Added the ability to use the library as a package in the Unity package manager using the git URL.
  • Added CSC file handler for the modules to use.
Changes:
  • Updated module setup to use scripting defines over custom unity packages.
    • Scripting defines apply via a little Unity trick where adding them to a file called csc.rsp in root applies them automatically without player setting changes.
    • All scripts in modules updated to be in their respective defines.
    • Removed module cache setup as it’s not needed anymore.
    • Removed module updating flow as it’s not needed anymore.
  • Updated library data asset creation and naming to be all under a similar convention.
    • All library assets are prefixed with [Cart]
    • Files are now stored in the Plugins folder in root instead of the asset’s code as before.
  • Updated assembly helper to be in runtime instead of editor so it can be used in runtime logic.
  • Updated interface helper to be in runtime instead of editor so it can be used in runtime logic.
  • Updated the formatting setup to be more uniformed and easier to use.
    • All formatters can be used with the .Format<>() extension.
    • All formatters now use the interface/class implementation, so users can add their own in the project to use with the system.
  • Updated object pooling to allow access to the free members without the use of the Assign() method.
  • Updated the RNG setup to allow access to the provider, should the user need it.
  • Updated the metadata system to use a data asset and a dictionary to find the right files in the project.
  • Updated GUID’s for all assets to avoid conflicts with older versions or other Carter Games packages.
Fixes:
  • Fixed some issues with the module manager window failing to load correctly on a fresh install.
  • Fixed some null issues in some custom editors in the library.