13-08-2019, 11:31 AM
(This post was last modified: 13-08-2019, 11:39 AM by josemendez.)
(12-08-2019, 01:54 PM)Powerhorst3000 Wrote: Hello there,
I've been using ObiRope for a few months now, specifically in VR environments, and found it to be accessible and extremely helpful.
As of recent, we've picked up an Oculus Quest and want to export our application from Rift-S to the Quest.
What happens is, that in the build, all rope simulation is missing.
Pin-Attached Rigidbodies fall off the ropes, the ropes don't interact with the environment, you name it. Seems to me the ObiSolver is basically deactivated.
(In Editor, everything works fine)
Using logcat the following error appears over and over again upon runtime:
Code:08-12 12:05:25.585 4333 4348 E Unity : DllNotFoundException: Oni
08-12 12:05:25.585 4333 4348 E Unity : at (wrapper managed-to-native) Oni.InitializeFrame(intptr,UnityEngine.Vector4&,UnityEngine.Vector4&,UnityEngine.Quaternion&)
08-12 12:05:25.585 4333 4348 E Unity : at Obi.ObiSolver.UpdateTransformFrame (System.Single dt) [0x00081] in <51a586ccea19400f99b633647cf1efac>:0
08-12 12:05:25.585 4333 4348 E Unity : at Obi.ObiSolver.Update () [0x00014] in <51a586ccea19400f99b633647cf1efac>:0
08-12 12:05:25.585 4333 4348 E Unity :
08-12 12:05:25.585 4333 4348 E Unity : (Filename: <51a586ccea19400f99b633647cf1efac> Line: 0)
Now I know the Oni Library is responsible for ObiPhysics.
I also know that the Oni.cs file decides which library-name to search for depending on the build platform.
IOS uses __internal. Makes sense
Android and Linux use "Oni".
Everything else uses "liboni".
Searching for the Oni.dll the folder "Assets\Obi\Plugins\Android" is simply empty.
The "\Assets\Obi\Plugins\x86" folder contains the libOni.dll.
Color me intrigued, where is the oni.dll? Is it included in ObiRope?
Can I switch to libOni.dll for the Oculus Quest? What can I do to get my ropes running in the build?
Thank you so much for any help, it is very much appreciated.
Hi there,
Android expects the "lib-" prefix when looking for library names, and removes it. Same for the .so/.a extension. So when it looks for "Oni", it is actually looking for "libOni.so" or "libOni.a", which is (or should be) included in Obi/Plugins/Android. From Unity's docs:
https://docs.unity3d.com/Manual/AndroidN...ugins.html
Quote:Note that pluginName should not include the prefix (‘lib’) or the extension (‘.so’) of the filename
What Obi version are you using? We haven't tried building for Oculus Quest (we don't even own one), but chances are it requires the arm64 version of the android lib, which if memory serves well was introduced in Obi 4.0.
kind regards,