Sometimes you want or rather need your components to always execute in the right order within the Unity function execution order (Awake, Start, Update, etc.). This package offers a solution where you can create and order your own modules (MonoBehaviours).
Checkout the Features section below for more information about the specific use cases and available helper scripts.
Understand the concepts of inheritance and generics in C# to use this package.
Since I am developing and maintaining this asset package in my spare time, feel free to support me via paypal, buy me a coffee or check out my games or other published assets.
See the API doc here
The current dependency is a fork with performance improvements (https://github.com/nikodemgrz/NaughtyAttributes) of the original open-source project NaughtyAttributes by dbrizov: https://github.com/dbrizov/NaughtyAttributes
Note, that the original NaughtyAttributes package is also compatible with this package if you already have it installed!
Add the following git urls in the package manager to include this package and my helpers package dependency:
"https://github.com/nikodemgrz/Unity3DHelperTools.git#upm"
"https://github.com/nikodemgrz/NikosAssets.Modulize.git"
For my NaughtyAttributes performance improvements fork:
"https://github.com/nikodemgrz/NaughtyAttributes.git#upm"
The original source:
"https://github.com/dbrizov/NaughtyAttributes.git#upm"
You can also choose specific releases and tags after the "#" instead of "upm".
Inherit from the BaseCompositeExecutor<TBaseModule> with your specified module type to use it as your ordered MonoBehaviour executor, where you place TBaseModule in the respective X-Update list.
The TBaseModule is your custom MonoBehaviour you want executed in a specific and reliable order between/ before/ after your other TBaseModule MonoBehaviours.