Cesium not Displaying Meta 2

Hi,

Details follow for cesium not displaying once deployed to a Meta2 headset.

Cesium for Unity 1.6.4 using Cesium Ion token
Unity 2023.3.10

Runs fine in Editor, even with headset connected.
Deployed to headset. No crashes, just not showing in app.


from logcat

17:06:57.341
Unity
DllNotFoundException: CesiumForUnityNative-Runtime assembly: type: member:(null)
17:06:57.341
Unity
at CesiumForUnity.Cesium3DTileset.CreateImplementation () [0x00000] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:06:57.341
Unity
at CesiumForUnity.Cesium3DTileset…ctor () [0x0007f] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:06:57.344
Unity
DllNotFoundException: CesiumForUnityNative-Runtime assembly: type: member:(null)
17:06:57.344
Unity
at CesiumForUnity.CesiumGeoreference.CreateImplementation () [0x00000] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:06:57.344
Unity
at CesiumForUnity.CesiumGeoreference…ctor () [0x00072] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:01.938
Unity
at CesiumForUnity.Cesium3DTileset.OnEnable () [0x00015] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:01.946
Unity
DllNotFoundException: CesiumForUnityNative-Runtime assembly: type: member:(null)
17:07:01.946
Unity
at (wrapper managed-to-native) CesiumForUnity.CesiumWgs84Ellipsoid.DotNet_CesiumForUnity_CesiumWgs84Ellipsoid_LongitudeLatitudeHeightToEarthCenteredEarthFixed(Unity.Mathematics.double3*,Unity.Mathematics.double3*)
17:07:01.946
Unity
at CesiumForUnity.CesiumWgs84Ellipsoid.LongitudeLatitudeHeightToEarthCenteredEarthFixed (Unity.Mathematics.double3 longitudeLatitudeHeight) [0x00008] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:01.946
Unity
at CesiumForUnity.CesiumGeoreference.UpdateOtherCoordinates () [0x0001f] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:01.946
Unity
at CesiumForUnity.CesiumGeoreference.Initialize () [0x0000f] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:01.946
Unity
at CesiumForUnity.CesiumGeoreference.OnEnable () [0x00000] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:02.575
Unity
DllNotFoundException: CesiumForUnityNative-Runtime assembly: type: member:(null)
17:07:02.575
Unity
at (wrapper managed-to-native) CesiumForUnity.CesiumWgs84Ellipsoid.DotNet_CesiumForUnity_CesiumWgs84Ellipsoid_LongitudeLatitudeHeightToEarthCenteredEarthFixed(Unity.Mathematics.double3*,Unity.Mathematics.double3*)
17:07:02.575
Unity
at CesiumForUnity.CesiumWgs84Ellipsoid.LongitudeLatitudeHeightToEarthCenteredEarthFixed (Unity.Mathematics.double3 longitudeLatitudeHeight) [0x00008] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:02.575
Unity
at Content.Cesium.Scripts.CesiumWorldSpaceLayer.GetLocalPointFromCoords (System.ValueTuple`2[T1,T2] coords) [0x0001a] in :017:07:02.577
Unity
at CesiumForUnity.Cesium3DTileset.Start () [0x00015] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:02.938
Unity
at CesiumForUnity.Cesium3DTileset.Update () [0x00015] in <9acf523e89dc4910b13c84661ebe8aea>:0
17:07:03.568
Unity
at CesiumForUnity.Cesium3DTileset.Update () [0x00015] in <9acf523e89dc4910b13c84661ebe8aea>:0

The immediate problem is that Cesium for Unity isn’t able to load its native code. The most likely cause is that you’re targeting 32-bit Android. Cesium for Unity only works on 64-bit platforms. Be sure to target ARM64, not ARM7. This may also require you to switch from mono to il2cpp.

1 Like

That is exactly what I needed! Many thanks.