SetUp XR Interaction Toolkit
1. Go to ProjectSettings/XRPluginManagement and install XR Plugin Management.

2. Checks OpenXR in the toggle.


3. Checks Yes to change the input system.


4. Opens OpenXR settings.


5. Add in Interaction Profiles the devices you want to be compatible with.


6. Now, in package manager, install XR Interaction Toolkit.


7. Click “I Made a BackUp, Go Ahead!” to continue.


8. Go to XRInteraction Toolkit and install Starter Assets.



SetUp Photon:
1. Download and import the assets:

https://assetstore.unity.com/packages/tools/network/pun-2-free-119922
and
https://assetstore.unity.com/packages/tools/audio/photon-voice-2-130518

If this panel appears, do not close it
2. Now we need two IDs for photon PUN and photon Voice.
3. Enter the web: https://www.photonengine.com/
4. Log in or Sign in to your photon account and go to your dashboard
5. Create a new app



6. Select the Photon SDK to Pun and enter a name.



7. Repeat step 5 and 6, but now selecting the Photon SDK to Voice.
8. Here are your ips for Unity.



9. Add the Pun ID in “AppId or Email” and click setup project.


10. In the top bar, click on Window/Photon Unity Networking/Highlight Server Settings.


11. Add the photon ips in App Id PUN and App ID Voice.



SetUp Firebase:
1. Enter in Firebase: https://firebase.google.com/


2. Create a Project.


3. Add a Unity app and follow the steps below.


4. Make sure to initialize the services you want to use and after that, re-download the google-service.json from the project configuration / your apps / sdk configuration.


5. Now install the services you are going to use from the firebase_unity_sdk you downloaded creating the app, do not forget that this project uses FirebaseDatabase, FirebaseAuth and FirebaseStorage, although you can always comment the code that gives you an error if you do not want to use any of the services, although it is recommended not to do it with FirebaseAuth for the security of your data.


SetUp VRTemplate:
1. Import Animation rigging.
2. Import TextMeshpro Essentials.
3. Import VRTemplate.
4. Build scenes.


5. Go to VRTemplate/Prefabs/Player/VR_Player inside the prefab in Settings/VRSettingsPlayer add an Action to be able to open the menu.
6. Repeat the process in file Assets/Photon/PhotonVoice/Resources/VoiceAppsettings as in the step 11 of SetUp Photon.


7. It is time to test that everything goes well, for this it is important that you understand that the extension must always start from Offline so we will always start with LobbyScene for the tests. Open LobbyScene and press play.

Unity versions tested:
2021.3.21f1
2021.3.16f1
2020.3.46f1


Change Build version:
There are two ways to build in this template, one for VR devices and one for Window, Android and Ios (Not VR). In order to make the build in one way or another, 2 things must be taken into account.
In the LobbyScene the VRPlayer prefab must be changed to the NotVRPlayer prefab in order to make one version or the other.
ProjectSettings/XR Plugin Management must be enabled or disabled.

Build VR = VRPlayer on the first scene and XRPluginManagement enabled.
Build Not VR = NotVRPlayer on the first scene and XRPluginManagement disabled.

All this is independent of what type of build you have selected in build settings.

Structure
+ Prefabs:
– MobileJoystick: Canvas of the Joystick to mobile version.
– NotVRPlayer: Player Controller in NOT VR mode.
– VRPlayer: Player Controller in VR mode.

+ Resources:
– Avatar Folder: Inside has prefabs of the different avatars.
– Networking Folder: Inside has prefabs of the multiplayer, Voice system.
+ Scenes:
– LobbyScene: Offline scene where the avatar and room to play online are chosen.
– OnlineRoom: Basic example online scene.

+ Scripts
– Firebase Folder: Help scripts for firebase.
– Networking Folder: Help scripts for Photon.
– Player Folder: Help scripts for VR and the handler of the controllers of the player and avatar.
– UI Folder: Help scripts for LobbyScene.
– Utility Folder: Other useful scripts.

External Tools:
XR Interaction Toolkit.
OpenXR Plugin.
Photon PUN.
Photon Voice.
Firebase Auth.
Firebase Database.
Firebase Storage.
Animation Rigging.
TextMeshPro.