What Is Init(args)?
Init(args) is a straightforward and type-safe solution for providing your components with all the objects that they depend on.
Here are some reasons why Init(args) could be the ideal choice to power the architecture of your next game…
✅ It’s Simple
Init(args)'s Inspector and attribute-based workflow is incredibly intuitive – the basics can literally be learned in a matter of minutes.
✅ It’s Inspector-Integrated
Services that clients will receive are visualized in the Inspector and support click-to-ping – just like you’re used to with serialized fields!
✅ It’s Dependable
Clients always receive the services they depend on before their Awake event – regardless of whether they’re loaded as part of a scene, instantiated from a prefab, or created using AddComponent.
✅ It’s Debuggable
Forgot to register a service that is required by a client?
Init(args) will guide you to resolve the issue with Inspector help boxes and Console messages.
In Play Mode you can see unserialized state in the Inspector so you can easily spot unreceived services.
And should everything else fail, there's even a Debugger window.
✅ It’s Highly Flexible
Global and local services, full interface support, cross-scene references, value providers… don’t let Init(args)’s ease-of-use mislead you into thinking it’s lacking in the power department!
✅ It’s Fast!
The simple and type-safe injection pipelines at the heart of Init(args) don’t depend on reflection, IL post-processing or source generators, while delivering class-leading performance.
Main Features
Let Init(args) take care of all the dirty plumbing work, and allow yourself to fully focus on just creating a great game!
Also Included: A demo scene contaning an example game!
Links
• Forum - Have any questions or ideas for new features? Discuss here.
• Documentation - Online Documentation for Init(args).
• Scripting Reference - Descriptions of all classes and class members in Init(args).