Migration
Each guide maps one library’s API to Onity, names the behaviors that differ, and lists what Onity does not ship so you do not look for it.
- From Zenject: bindings, injection, factories, lifecycle, scopes, signals.
- From VContainer: registration, lifetimes, entry points, async startup.
- From R3 and UniRx: primitives, operators, lifetime, what is not shipped.
- From UniTask: name mapping, behavior differences, 0.5 to 0.6 notes.
- From MessagePipe: the Migrating from MessagePipe section of the Events and Messaging guide, and the Messaging vs MessagePipe comparison.
Method
- Replace one library at a time. Finish the DI move before the reactive move, and the reactive move before the async move; the mapping tables assume the earlier pillar is already on Onity.
- Keep the old library only inside the bounded context that still depends on it. Do not add adapters that bridge the two libraries across the whole project; convert one scene or feature, verify it, then move to the next.
- Verify every name against the installed source under
Packages/com.onity.framework/Runtime/. The tables are checked against Onity 0.8.2; an API that is not in a table does not exist in Onity, and a Zenject, VContainer, R3, UniRx, UniTask or MessagePipe analogy is not evidence that it does. - Read Lifecycle and Scopes before you move async startup code. The scope token and
IOnityAsyncInitializablereplace most hand-written startup ordering.