Multi-user NUIX Studio is a different version of NUIX-Studio Rooms, developed specifically to support:
- Multi-user interaction with objects
- Different VR headsets (not only Oculus)
At the same time, to support OpenXR framework instead of Oculus framework (which is original NUIX-Studio is based on), the following functionality has been removed ot limited:
- Hand grabbing
- Gesture support
Download this project from github and open it in Unity HUB, Unity v.2022.2.f9c9+. Turn on VPN and open the project from folder. After opening it, navigate to Sample scene. In Network GameObject, select Unity Transport Property and set the IP address of the server/host in Connection data settings. If your device is a server, then keep the default value.
By using Unity Netcode for GameObjects, the positions and rotations of the selected GameObjects are synchronized. Of course, each project using NUIX-Studio requires its own set of objects and their characterictics to be synchronized for multiple users. In the example scene it is shown how to synchronize the Light states. Mention:
- GameObjects to be synchronized should have scripts attached derived from NetworkBehaviour, but not MonoBehaviour.
- NUIX-Studio has built-in functionality of saving and loading Objects and Actions. The server\host will load and save the states of the items in its instance. For example, the Light colour is not synchronized between devices. After the server has saved the devices parameters, and then a new client connects to it, the loaded Light colour will be the one which was saved by the server. Why don't we constantly syncronize all the devices parameters between users? The developer of NUIX-Studio has tried to create a special server for such purpose, but the latency was too high. Unity Netcode solved the latency problem, however, added the described limitations.