Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Oculus Unity Integration - v1.36 (04/23/19)

NinjaGGNinjaGG Posts: 229 Oculus Staff
edited May 23 in Unity Development

Version 1.36 of our integration for Unity has been released!

The Oculus Integration for Unity package adds scripts, prefabs, samples, and other resources to supplement Unity’s built-in support. The package includes an interface for controlling VR camera behavior, a first-person control prefab, a unified input API for controllers, advanced rendering features, object-grabbing and haptics scripts for Touch, debugging tools, and more. For more information, see our Unity Getting Started Guide.

You can grab the latest version of our Unity Integration here (through the Unity Asset Store): https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022

More information, as well as general known issues with Unity, about this release can be found here.

1.36 Update Notes

New Features

  • The Oculus Integration for Unity (not including the Avatars components) has been updated to support ARM64 development.

Integration Changes

  • Updated the Oculus Unity Integration to 1.36, including:
    • Updated the Avatars integration to 1.36
    • Updated the Platform integration to 1.36
    • Updated the Audio integration to 1.36
    • Updated the LipSync integration to 1.36

Bug Fixes

  • Fixed an issue where OVRPlugin.systemDisplayFrequenciesAvailable returned an empty array when using a IL2CPP backend.
  • Updates to reduce controller pose latency.
  • Fixed an issue in Mixed Reality Capture where the virtual world rendered a few frames behind the real world when the user’s headset is moving.

API Updates

  • Deprecated the OVRBoundary.SetLookAndFeel() and OVRBoundary.ResetLookAndFeel() APIs.

Known Issues

    All Unity 2018.2 versions

    • (Mobile) You'll need to either switch the AndroidBuildSystem to internal or export a Gradle project and modify the SigningConfig in the build.gradle file to include v1SigningEnabled=true, v2SigningEnabled=false.

    2018.2.20f1

    • (Mobile) Some game objects may appear darker when loaded in 2018.2.20f1. To work around this issue, load the project in another version of Unity, like 2018.2.19.
    The thread for the previous version (v1.35) can be found here: https://forums.oculusvr.com/developer/discussion/73914/oculus-integration-for-unity-v1-35-02-28-19
    If you need immediate help or want additional support/context on an issue you are having with our platform or integrations:

    1. Gather any and all logs, screenshots, and version numbers of relevant software (Oculus SDK, engine, etc.)
    2. Please submit a ticket here (include what you've gathered in step 1).
    3. Tag me @NinjaGaijin once you have done so!

    Comments

    • Schneider21Schneider21 Posts: 48
      Brain Burst
      Kinda hard to not notice that this release also added the new Rift S / Quest Touch controllers...



       :# 
    • timothyallantimothyallan Posts: 16
      NerveGear
      Looks good, but I'm getting immediate crashes on load of my Go app which was working great on 1.35.
      Where can I find 1.35 to downgrade? It's not available here https://developer.oculus.com/downloads/package/unity-integration/, nor on the Legacy Unity Release Archive page.
    • NinjaGGNinjaGG Posts: 229 Oculus Staff
      @timothyallan Could you submit this as a bug report? Please include any logs and screenshots of the errors you're getting: https://developer.oculus.com/bugs/create/
      If you need immediate help or want additional support/context on an issue you are having with our platform or integrations:

      1. Gather any and all logs, screenshots, and version numbers of relevant software (Oculus SDK, engine, etc.)
      2. Please submit a ticket here (include what you've gathered in step 1).
      3. Tag me @NinjaGaijin once you have done so!
    • timothyallantimothyallan Posts: 16
      NerveGear
      I'm assuming that's a no.
      This is an expensive lesson, as I usually don't commit 3rd party packages to source control, but looks like I'll have to start!
      Thanks anyways.
    • tommosaurtommosaur Posts: 35 Oculus Start Member
      I had the same issue as you mentioned, where with the latest oculus integration package my app was crashing on the Oculus Go right on launch (while it worked fine with older oculus integration package before).
      When i saw your post mentioned the same, i then removed the Oculus (integration) folder from the assets and downloaded the last Oculus Utilities package from the downloads page. Not ideal as that one is a good bit older of course, so not on the latest feature level, but at least that way i could run my app on the Oculus Go again for the meantime until this issue is fixed.
    • MikeSwansonMikeSwanson Posts: 38
      Brain Burst
      FWIW, I've assembled/kept an archive of older Integration packages. Send me a PM if you're interested.
    • tommosaurtommosaur Posts: 35 Oculus Start Member
      thanks @MikeSwanson, but at least i'm good now.
      I did some further tests and got it working with the Oculus integration 1.36 on the Go now in my game.
      First i just imported the Oculus integration (1.3.6) package into a blank project in U2018.3.4F1 and then again in U2019.1F2 and deployed those with just a cube in the scene and the app set to vr support enabled, just to see if that by itself already triggered any errors.
      And no, was all good, ran on the Oculus Go no problem.

      Then in my actual game (where it was crashing on the Oculus Go with oculus integration 1.3.6) i closed the unity editor, removed anything with Oculus, OVR etc, so anything related to Oculus from the project assets and then downloaded the 1.3.6 Oculus integration fresh again.
      Then when i tried a deploy then it did not crash anymore on the Oculus Go, but it did take way longer to load than before i had added Oculus Integration to the project.

      So i think in my case the main two issues were a) that i had older Oculus Utilities /Integration version stuff in my project which was likely not playing well with the things from the latest plugin version and b) the Oculus Integration adds way more in filesize/mem usage to the project than my old smaller utilities which is no good for load times and if your app already uses a bunch of memory, too on the mobile devices.

      I have now removed all from the Oculus integration package's assets which i don't need for this project and only kept what i need/use, because then it uses way less filesize etc and the load time is shorter again.
    • timothyallantimothyallan Posts: 16
      NerveGear
      We ended up having to make a new project with only 1.3.6 and then slowly import everything from the original 1.3.5 project. We're still doing it, and have also noticed way longer load times initially, as well as between scenes.
      Had a client comment on it as well already on a beta build, which is never a good thing.
    • tommosaurtommosaur Posts: 35 Oculus Start Member
      yeah, you can check whether you need things from Oculus Integration in your project or are fine with the older Oculus Utilities if you don't and want smaller filesize automatically.
      If you want to use the Oculus Integration (which could make sense since it actually does have some cool improvements and additions), you best check the build report after doing a build so you can see what all is added to the build and compress more or remove the biggest offenders.
      (You can see the build report in the Unity editor log after doing a build)
    • tommosaurtommosaur Posts: 35 Oculus Start Member
      regarding the filesize issue, a suggestion to the oculus fellas: i like it that there is just the oculus integration which has all in it, so one only has to download and use one package for all platforms, but i think as it grows bigger maybe you could do something like in the settings inspector panel one could toggle off features one doesn't use for this project and then those those things don't get added to the build.
      (For example various post processing packages on the asset store like Beautify allow doing things like that)
    • Schneider21Schneider21 Posts: 48
      Brain Burst
      @NinjaGaijin The documentation for the Unity integration package is crazy out of date now. Can we look forward to that being updated to reflect the actual contents of the package anytime soon?

      For example, there's an OVRControllerPrefab that isn't mentioned anywhere in the docs, and the same for the attached OVRControllerHelper component found on it. That script has a "Controller" property with the following options:
      • Active
      • All
      • None
      • L Touch
      • R Touch
      • Touch
      • Remote
      • Gamepad
      • L Tracked Remote
      • R Tracked Remote
      • Touchpad
      And it's not really clear what the difference is between several of those, nor which is the correct to use. For that matter, there doesn't seem to be a definitive guide for adding tracked controllers in any case, which feels like a very basic task that would be perfectly handled by a prefab.
    • NinjaGGNinjaGG Posts: 229 Oculus Staff
      @Schneider21 Thanks for the heads up - could you PM me links to the exact documentation you're referring to? This way, I can reach out to the docs team.

      @tommosaur I appreciate the feedback about the Oculus Integration, I've passed it along to the proper team to review.
      If you need immediate help or want additional support/context on an issue you are having with our platform or integrations:

      1. Gather any and all logs, screenshots, and version numbers of relevant software (Oculus SDK, engine, etc.)
      2. Please submit a ticket here (include what you've gathered in step 1).
      3. Tag me @NinjaGaijin once you have done so!
    • tommosaurtommosaur Posts: 35 Oculus Start Member
      thanks @NinjaGaijin ; =)
    • justin-observrjustin-observr Posts: 2
      NerveGear
      I noticed there's no enum for the Rift S in OVRPlugin.SystemHeadset. Will this be added in a future version?
    • vrationbarilevrationbarile Posts: 2
      NerveGear
      edited May 20
      RESOLVED: I'm keeping this up here in case anyone runs across the same issue.

      I had overlooked the warning (not error, mind you!) that Vulkan Graphics API is not supported in XR.  Vulcan is added by default in a new Unity project in 2019.  Better than the subtle warning, it would be nice if a popup prompted the user to remove Vulcan when the XR Support checkbox is checked in the Player Settings.

      Thanks @NinjaGaijin ; for offering your support... I hadn't caught it until I uploaded screenshots.
       
      -----------------------------------

      I can't even get a boilerplate build (just an head-tracking skybox) to work in Unity 2019.1f2.  Once I plug Samsung Galaxy S7 into my GearVR it says "Gear VR has quit unexpectedly".  The exact same build works fine in Unity 2018.3.
      Any suggestions @NinjaGaijin ?

      Here are some screenshots of my settings:

    • Schneider21Schneider21 Posts: 48
      Brain Burst
      @NinjaGaijin Do you guys have an ETA for when the dev docs will be updated? As in, should we be expecting them tomorrow around the same time the system is in people's hands, or will it be sometime later in the week? Or later than that?
    • Shy_ELCShy_ELC Posts: 1
      NerveGear
      edited May 30
      For anyone still waiting for the docs to be updated, you can get started with input/controller positioning by doing the following:

      1) Pop an OVRCameraRig prefab into your scene
      2) Locate the OculusTouchForQuestAndRiftS_* Left/Right controller models in the Project view
      3) Pop each controller model underneath the appropriate *ControllerAnchor node in the OVRCameraRig prefab's hierarchy

      It's best to skip the OVRControllerPrefab entirely, as all it currently does is load all possible controller models into memory and then disable all but the one controller being used for that one hand - which means two of these prefabs will need to be loaded, giving your app multiple unused controller model instances, and duplicates of the instances your app does use, to clog up the device memory.

      Edit: Here's a screenshot of the scene hierarchy with a functioning setup:
    Sign In or Register to comment.