VContainer allows plain C# to be the starting point for application processing. Using it instead of MonoBehaviour, which has a lot of features, can help you build a simple control flow.
clas FooController : IStartable
// Do something ...
VContainer does this with its own PlayerLoopSystem.
If you register a class that implements the marker interface, it will be scheduled in Unity's PlayerLoop cycle.
Since it uses PlayerLoopSystem, it works even if you register at any time (e.g:
|VContaienr entry point||Timing|
|Immediately after building the container|
IDisposable: With container disposes. (For
Handle of the exception that was not caught
On the application side, exceptions thrown in processes such as Start() and Tick() cannot be caught outside.
By default, VContainer logs unhandled exceptions as
As another option, you can register a callback for each LifetimeScope.
Default error logging will be skipped if you are using the RegisterEntryPointExceptionHandler.
If you are using UniTask, you can use
IAsyncStartable. see also UniTask Integration