Jump to content

[Tutorial] Port your app to Focus3(and other wave platforms) using Interaction Toolkit package


Recommended Posts

Using unity to build content using the latest Unity XR Interaction toolkit can be a quick way to build content that can work in a wide variety of ways, and be supported well into the future as unity builds new features.

So today, we're going to take the "Escape Room" example provided by unity and get it working with WaveXR, step by step.

Step 0: Install the latest Long term support version of unity - at the time of writing, this was unity 2020.3.16f1

Step 1: 
Open unity hub select "New", and create a blank project

Click "Create" and you should have a project you can start working from!

Step 2:
Open up the web page https://assetstore.unity.com/packages/templates/tutorials/vr-beginner-the-escape-room-163264 
 a) select the "Add To assets" blue button
 b) Select "Open in unity" to add it to your open project created in step 1. You may also have to select "Open Unity Editor" to allow the web page to perform this action.

Step 3:
In Unity, you should see a window titled "Package Manager" and it should select "VR Beginner: The Escape Room"
  a) Select "Import" at the bottom right of the Package manager window (pictured above)
  b) Select "Import" at when the window pops up indicating that "importing a complete project will overwrite your current project settings". Since we have just set this project up, this is not a problem
  c) Select "Install/Upgrade" to install the dependencies
  d) Select "Import" at the bottom right to bring the assets into your project
Step 4) Configure Wave XR plugin
  a) In Unity, Select Edit->Project Settings. In that window Select "Package Manager", and add A new entry Name "HTC", URL "https://npm-registry.vive.com" and Scope(s): "com.htc.upm"  like the image below. Then hit "Apply"
  b) Go back to the project manager and select "My Registries" from the dropdown

Which should lead you to a screen that looks something like this:

  c) Select "Install" on both the Wave XR Plugin 
  d) Inside of the "Project Settings" window, select "Wave XR" and click the "PlayerSettings Configure Dialog" button, then "Accept all" to configure the project for focus3 development.
After it is done changing settings (this may take a little while), you should see a dialog saying "You made the right choice"
  e) Go to "Project Settings"->"Wave XR"->"XRSDK" and click on the "Import Feature - Custom Android Manifest" button, and import the package assets
  f) Enable Wave as an XR plugin - Go to "Player Settings"->"XR Plugin-in Management" and enable WaveXR for both PC and Android


Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

Instructions still unclear... Do you mean install these ↓ two?

If so should XR always be installed and can you explain the deference between Native and Essence in case I have a use case that could be better suited to one or the other?

Or are you saying install Essence and Native or when you say "XR plugin which requires XR plugin" are you saying just install essence and it will include XR Pugin thus it installs "both"?

Link to comment
Share on other sites

Or maybe you should say install just the first XR plugin as step 4 E doesn't show Essence or Native

Yours image.png.561f8de6800b017bfe59c6b40e74b6dc.png

Mine image.png.59e94b74d34afc830c0f88de934e04f6.png


And for me the native only shows because I installed Essence which auto pulled native as well. so this still needs Clarification

Edited by Giantbean
Link to comment
Share on other sites

  • 1 month later...


Installing the Wave XR plugin is all that is needed to get a project up and running.

Wave essence does add some nice features like a simple way to show the controller with the "RenderModel" script. I tend to install essence and then let it install the other packages for me.

To get into details:

Essence contains additional packages and configurations that can be helpful. For instance, RenderModel.cs which will show a controller model at the location you specify.

Essence depends on native and the xr sdk, so it pulls in a version of it when you install. If you intend to install it at some point, then it will install  
To be specific, for version 4.3.0-r.2 of 'Essence" it's package.json file specifies


"dependencies": {
    "com.htc.upm.wave.xrsdk": "4.3.0-r.2",
    "com.htc.upm.wave.native": "4.3.0-r.2"

As dependencies. When you install essence, the unity package manager knows it needs to pull the other packages in as well.

Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...