{"id":20705586,"url":"https://github.com/cpvrlab/cpvr-vr-suite","last_synced_at":"2025-06-27T01:32:46.092Z","repository":{"id":165929998,"uuid":"641267056","full_name":"cpvrlab/cpvr-vr-suite","owner":"cpvrlab","description":"Unity VR OpenXR Functionality","archived":false,"fork":false,"pushed_at":"2025-02-17T08:28:06.000Z","size":4436,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-11T05:15:52.961Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cpvrlab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-16T05:59:50.000Z","updated_at":"2024-08-26T08:58:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e1293de5-cc07-45fb-ae64-b11cd2955e3e","html_url":"https://github.com/cpvrlab/cpvr-vr-suite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cpvrlab/cpvr-vr-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpvrlab%2Fcpvr-vr-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpvrlab%2Fcpvr-vr-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpvrlab%2Fcpvr-vr-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpvrlab%2Fcpvr-vr-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cpvrlab","download_url":"https://codeload.github.com/cpvrlab/cpvr-vr-suite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cpvrlab%2Fcpvr-vr-suite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262172656,"owners_count":23270072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T01:18:38.722Z","updated_at":"2025-06-27T01:32:45.837Z","avatar_url":"https://github.com/cpvrlab.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPVRLab-VR-Suite\n\n## About\n\nThis is a package created for and by the CPVRLab of the BFH. It contains assets which are commonly used together in new VR projects by members of the CPVRLab.\nPlease refer to the Unity [documentation](https://docs.unity3d.com/Manual/CustomPackages.html) regarding the handling of a custom UPM package.\n\n## Adding this package to a Unity project\n\n1. Open the project settings and set up XR Plugin Management\n2. Head to the package manager, add a package via git URL and paste the following URL: https://github.com/cpvrlab/cpvr-vr-suite.git\n3. In the project settings, set OpenXR as Plugin provider and configure the feature groups as well as the interaction profiles for the desired platform\n4. In order to use the overlay keyboard when using a Meta Quest 2 or Pro headset, a custom AndroidManifest.xml and folder structure has to be created.\n   1. Create the following folder structure: **Assets/Plugins/Android**\n   2. Create a file within the Android folder named **AndroidManifest.xml**\n   3. Paste the following content into the newly created file:\n   ```\n   \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n   \u003cmanifest\n           xmlns:android=\"http://schemas.android.com/apk/res/android\"\n           package=\"com.unity3d.player\"\n           xmlns:tools=\"http://schemas.android.com/tools\"\u003e\n       \u003capplication\u003e\n           \u003cactivity android:name=\"com.unity3d.player.UnityPlayerActivity\"\n                     android:theme=\"@style/UnityThemeSelector\"\u003e\n               \u003cintent-filter\u003e\n                   \u003caction android:name=\"android.intent.action.MAIN\" /\u003e\n                   \u003ccategory android:name=\"android.intent.category.LAUNCHER\" /\u003e\n               \u003c/intent-filter\u003e\n               \u003cmeta-data android:name=\"unityplayer.UnityActivity\" android:value=\"true\" /\u003e\n           \u003c/activity\u003e\n       \u003c/application\u003e\n       \u003cuses-feature android:name=\"oculus.software.overlay_keyboard\" android:required=\"false\"/\u003e\n   \u003c/manifest\u003e\n   ```\n   4. Go to **Project Settings -\u003e Player -\u003e Publishing Settings** and make sure that the Checkbox for **Custom Main Manifest** is checked\n   5. A custom AndroidManifest.xml is provided within the package but needs to manually be moved to the appropriate location.\n\n### Scene setup\n\n1. Place the **Persistent Objects** prefab in an empty scene and add it to the build index\n2. Add your additional scenes to the build index without the **Persistent Object** prefab, camera or any other XR Rig in them\n\n### Networked scene setup\n\n1. Place the **Network Complete VR Rig** prefab in an empty scene alongside the **NetworkManager** and **NetworkController** which can be found in the Network folder within the prefabs.\n2. In the **NetworkController** add a reference to the **NetworkManager** instance in the scene.\n3. Add your additional scenes to the build index without the VR Rig or camera in them.\n\n### Sending screenshots via Email\n\nIn order to send emails via the screenshotmenu a valid EmailLogin.json file must be provided and stored in 'Assets/Resources/Secrets'. It is forbidden to push this file to a repository as it contains the necessary credentials for the sending email account.\n\nAdditionally it must be verified that the following two settings are correctly set in the *Project Settings*.\n- Player \u003e Internet Acces: Required\n- XR Plugin Management \u003e OpenXR \u003e Meta Quest Support Settings (Gear icon) \u003e Manifest Settings \u003e Force Remove Internet: false (unticked)\n\n## Extending this package\n\nIf you wish to extend the functionality of this package, there are two basic ways to accomplish this.\n1. If you are using a blank project, you can directly clone this repository into your 'Assets' folder. Open a Terminal in your project folder then use the following commands:\n```\ncd Assets\ngit clone https://gitlab.ti.bfh.ch/VR/cpvrlab-vr-suite.git\n```\nAfter the package has been cloned into your Assets folder, you can extend its functionality and push changes directly to the repository.\n\n2. If you are using a project, which is already a git project, you can add this package as a submodule by using these commands:\n\n```\ncd existing_repo\ncd Assets\ngit submodule add https://gitlab.ti.bfh.ch/VR/cpvrlab-vr-suite.git\n```\n\nChanges made to the package can be pushed from within the folder directly. Otherwise refer to the git [documentation](https://git-scm.com/book/en/v2/Git-Tools-Submodules).\n\nMake sure to increment the version number in the **package.json** file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpvrlab%2Fcpvr-vr-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcpvrlab%2Fcpvr-vr-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpvrlab%2Fcpvr-vr-suite/lists"}