Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  DIINotFoundException when attempting to import ObiRope
#1
Hello,

I was trying to use ObiRope in Unity 2022.3.18f1 URP. When importing the package via Package Manager, I encountered the following errors
[Image: AccJccH]
Code:
DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
Obi.OniBackend.CreateSolver (Obi.ObiSolver solver, System.Int32 capacity) (at Assets/Obi/Scripts/Common/Backends/Oni/OniBackend.cs:17)
Obi.ObiSolver.Initialize () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:883)
Obi.ObiSolver.AddActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1148)
Obi.ObiActor.AddToSolver () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:348)
Obi.ObiActor.OnEnable () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:323)

DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
Obi.ObiProfiler.DisableProfiler () (at Assets/Obi/Scripts/Common/Utils/ObiProfiler.cs:84)
Obi.ObiFixedUpdater.Update () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:67)


Not sure how to resolve, as the example scenes don't seem to work (I don't see any rope appearing). Some of the materials are also failing to convert to URP (namely the VertexColor one). Would appreciate any help in resolving this!

EDIT: Reading thru the documentation, I made sure Burst, Jobs, Mathematics, and Collections packages are imported as well. However, when I'm trying to open my project again, I get the following compile error

Assets/Obi/Scripts/Common/Backends/Burst/DataStructures/NativeMultilevelGrid.cs(74,46): error CS1061: 'UnsafeList<K>' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'UnsafeList<K>' could be found (are you missing a using directive or an assembly reference?)

I was able to quickly change the code from contents.length to contents.Length to fix this. Afterwards project was able to open, but I still get the above DIINotFoundException when attempting to play the example scenes.
Reply
#2
Hi there!

As stated in the store description and the manual, Obi requires Burst, Jobs, Mathematics, and Collections to work. If it doesn't find them installed it will attempt to fall back to a native-library based backend, which only has support for Windows, Linux and Intel Macs. In particular, it doesn't support the Apple Silicon architecture so if you're using it you'll encounter the libOni.dll not found exception.

Make sure your ObiSolver components do not have the following warning in them:
[Image: burst_warning.png]

If they do, that means some package is missing or uses an older version than supported. Please refer to the manual for a list of minimum versions for each package.

(11-06-2024, 05:21 AM)orangefire Wrote: I was able to quickly change the code from contents.length to contents.Length to fix this.

Some versions of Collections use length and some use Length with a capital L, Unity's auto API updater should take care of this. Changing it manually is also possible.

(11-06-2024, 05:21 AM)orangefire Wrote: Afterwards project was able to open, but I still get the above DIINotFoundException when attempting to play the example scenes.

Some of the sample scenes contain a ObiProfiler component, that will only work when using the fallback system. In your case you should remove this component since the fallback isn't supported at all in your architecture.

(11-06-2024, 05:21 AM)orangefire Wrote: Some of the materials are also failing to convert to URP (namely the VertexColor one).

Not all of the included sample materials have URP equivalents, so Unity may fail to automatically convert them:

http://obi.virtualmethodstudio.com/manua...setup.html
Quote:Unity may fail to convert all materials in a scene, in that case you can just select the remaining pink objects and change their material/shader to an URP/HDRP compatible one.

The VertexColor one is just the built-in's pipeline Standard shader with added vertex color support. Any URP material with vertex color support can be used instead of it. Note this is not necessary for the asset to work, since rendering and simulation are completely orthogonal to each other.

kind regards,
Reply
#3
Thanks for your detailed reply! Was able to get it working Sonrisa
Reply