This class provides a ready-to-use encapsulation that leverages the
OVRColocationSession APIs to host and discover local / nearby Colocation sessions and join them via Bluetooth and WiFi.
Comparing to networking framework based matchmaking: this workflow ensures users are all locally nearby, and there's no need for using
Oculus user ids when colocating within the group (this requires working together with the Colocation block with the "Use Colocation Session" option enabled).
All players wish to participate in the same session need to have Bluetooth enabled and join the same WiFi network.
As the local session provided by
OVRColocationSession is just a mechanism to find nearby players and send limited metadata for matchmaking, it doesn't really allow synchronizing networked objects and support multiplayer game logic. Hence, for the benefit of bootstrapping a local multiplayer session easily, this implementation also depends on the CustomMatchmaking block to create and join networked rooms provided by 3p networking frameworks (such as Photon Fusion2, Unity Netcode for GameObjects).
This class provides an automatic mechanism to host/join local sessions on Start() depending on whether an existing colocation sessions available.
If wish to explicitly host / join the session with own game UI, developers could also use several async functions provided to trigger manually.