We developed a Unity package for making Unity Projects work on a CAVE. To make migration as easy as possible we provide a bunch of tools like synchronization on a cluster, configuration, projection etc. out of the box. For getting started with our package read the following Quick start guide:
To integrate CAVE support into your Unity application there are a few steps to do:
Import our unity package into to your project. Just copy the content of the "Package" directory into your assets folder.
In the directory Assets/Cave/Prefabs you should find a prefab called NodeManager. Please add this prefab to your scene.
Make sure the script Cave.Synchronizer is executed before all other scripts (In Unity go to Edit -> Project Settings -> Script Execution Order):
- Add the script Cave.InstantiateNode and set its value to -200.
- Add the script Cave.Synchronizer and set its value to -100.
Disable the startup resolution dialog: Build Settings -> Player Settings -> Resolution and Presentation -> Display resolution dialog: enable/disable.
It is very likely that you have to adjust the scripts of your projects. This is necessary as you need to make sure you are using synchronized parameters instead of the ones unity provides which are just local.
You can find all necessary steps in the synchronization chapter.
After building your project you can configure how your project should look like in the CAVE. See the config tool documentation for further details how to do this.
Before starting your project, you might also need to start the VRPN server (run VRPN_Server/vrpn_server.exe). This is only necessary, if you use vrpn for tracking.
For getting more information about a specific topic of our package you can find the documentation on multiple subpages:
- We developed the package using Unity 5.5.2f1, but our package should also work with future versions.
- This project was originally build for Windows, but it might also work on Linux or Mac.
- As basis for our project we used the Unity Cluster Package. Nevertheless we don't have much in common with it anymore.
- For basic socket communication we used a slightly changed version of the AwesomeSockets Library