Crash with Google Photorealistic 3D Tiles - fix now available

Hi everyone,

Many of you have suddenly started seeing crashes in your Cesium for Unity applications. In many cases, the applications were working fine a few days ago, and then suddenly became unreliable. First of all, we’re really sorry for this situation, we know how terrible it is when your application suddenly stops working, perhaps even on end-user machines!

This post will explain what is happening, and what you can do to get your application running again.

The crash is caused by a recent update to Google Photorealistic 3D Tiles. If you’re not using that particular tileset, you should be unaffected. The update changed the way some of the data provider “credits” are represented. Unfortunately, this triggered a bug in Cesium for Unity that caused it to crash when attempting to load tiles containing these new credits.

We have fixed this bug in Cesium for Unity v1.15.3. You can install this new version using the Unity Package Manager and our Scoped Registry. See the Quickstart guide for information about how to set up the Scoped Registry. Start with step 1.3 if you’re working with an existing project.

You can also download the updated package directly from the Releases page and install the .tgz file from the Unity Package Manager UI.

In either case, restart the Unity Editor after upgrading to ensure that the latest version of the native code is loaded.

To verify that you have the correct version, look in the lower-right corner of the Cesium panel in the Unity Editor and verify that it says “v1.15.3” or later.

Sorry once again for the hassle! Let us know if you run into any trouble.

Kevin

Hi,

I faced the same issue and upgraded to v1.15.3 but after opening my project i have 260 errors in my existing project which was working fine with the older version v1.13

Library\PackageCache\com.unity.ai.navigation@2.0.5\Runtime\NavMeshLink.cs(238,25): error CS0117: ‘NavMesh’ does not contain a definition for ‘SetLinkActive’

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileMapServiceRasterOverlay.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumWebMapServiceRasterOverlay.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumWebMapTileServiceRasterOverlay.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumWgs84Ellipsoid.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\ConfigureReinterop.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\NativeDownloadHandler.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\TestGltfModel.cs(2,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\TestReinterop.cs(1,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTile.cs(13,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTile.cs(13,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTile.cs(35,39): error CS8795: Partial method ‘Cesium3DTile.getBounds(IntPtr, IntPtr, double4x4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTileset.cs(50,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTileset.cs(50,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumCreditSystem.cs(92,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumCreditSystem.cs(92,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumCreditSystem.cs(216,30): error CS8795: Partial method ‘CesiumCreditSystem.UpdateCredits(bool)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(44,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(44,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(636,30): error CS8795: Partial method ‘CesiumGlobeAnchor.SetNewLocalToGlobeFixedMatrix(double4x4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(644,30): error CS8795: Partial method ‘CesiumGlobeAnchor.SetNewLocalToGlobeFixedMatrixFromTransform()’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(652,36): error CS8795: Partial method ‘CesiumGlobeAnchor.GetLocalToEastUpNorthRotation()’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(660,30): error CS8795: Partial method ‘CesiumGlobeAnchor.SetLocalToEastUpNorthRotation(quaternion)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTileset.cs(712,30): error CS8795: Partial method ‘Cesium3DTileset.ComputeLoadProgress()’ must have an implementation part because it has accessibility modifiers.
Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTileset.cs(763,31): error CS8795: Partial method ‘Cesium3DTileset.UpdateOverlayMaterialKeys()’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumIonRasterOverlay.cs(10,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumIonRasterOverlay.cs(10,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumIonRasterOverlay.cs(82,41): error CS8795: Partial method ‘CesiumIonRasterOverlay.AddToTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumIonRasterOverlay.cs(84,41): error CS8795: Partial method ‘CesiumIonRasterOverlay.RemoveFromTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumMetadata.cs(10,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdAttribute.cs(33,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdAttribute.cs(33,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumDebugColorizeTilesRasterOverlay.cs(9,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumEllipsoid.cs(105,32): error CS8795: Partial method ‘CesiumEllipsoid.CenteredFixedToLongitudeLatitudeHeight(double3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumBingMapsRasterOverlay.cs(27,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumBingMapsRasterOverlay.cs(27,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumBingMapsRasterOverlay.cs(67,41): error CS8795: Partial method ‘CesiumBingMapsRasterOverlay.AddToTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumBingMapsRasterOverlay.cs(70,41): error CS8795: Partial method ‘CesiumBingMapsRasterOverlay.RemoveFromTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(31,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(31,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(56,30): error CS8795: Partial method ‘CesiumFeature.GetInt8(string, sbyte)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(64,29): error CS8795: Partial method ‘CesiumFeature.GetUInt8(string, byte)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(72,30): error CS8795: Partial method ‘CesiumFeature.GetInt16(string, short)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(80,31): error CS8795: Partial method ‘CesiumFeature.GetUInt16(string, ushort)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(88,30): error CS8795: Partial method ‘CesiumFeature.GetInt32(string, int)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(96,31): error CS8795: Partial method ‘CesiumFeature.GetUInt32(string, uint)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(104,30): error CS8795: Partial method ‘CesiumFeature.GetInt64(string, long)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(112,31): error CS8795: Partial method ‘CesiumFeature.GetUInt64(string, ulong)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(120,30): error CS8795: Partial method ‘CesiumFeature.GetFloat32(string, float)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(128,31): error CS8795: Partial method ‘CesiumFeature.GetFloat64(string, double)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(136,32): error CS8795: Partial method ‘CesiumFeature.GetBoolean(string, bool)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(144,31): error CS8795: Partial method ‘CesiumFeature.GetString(string, string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(153,30): error CS8795: Partial method ‘CesiumFeature.GetComponentInt8(string, int, sbyte)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(162,29): error CS8795: Partial method ‘CesiumFeature.GetComponentUInt8(string, int, byte)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(171,30): error CS8795: Partial method ‘CesiumFeature.GetComponentInt16(string, int, short)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(180,31): error CS8795: Partial method ‘CesiumFeature.GetComponentUInt16(string, int, ushort)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(189,30): error CS8795: Partial method ‘CesiumFeature.GetComponentInt32(string, int, int)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(198,31): error CS8795: Partial method ‘CesiumFeature.GetComponentUInt32(string, int, uint)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(207,30): error CS8795: Partial method ‘CesiumFeature.GetComponentInt64(string, int, long)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(216,31): error CS8795: Partial method ‘CesiumFeature.GetComponentUInt64(string, int, ulong)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(225,30): error CS8795: Partial method ‘CesiumFeature.GetComponentFloat32(string, int, float)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(235,31): error CS8795: Partial method ‘CesiumFeature.GetComponentFloat64(string, int, double)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(244,32): error CS8795: Partial method ‘CesiumFeature.GetComponentBoolean(string, int, bool)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(253,31): error CS8795: Partial method ‘CesiumFeature.GetComponentString(string, int, string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(259,28): error CS8795: Partial method ‘CesiumFeature.GetComponentCount(string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(265,37): error CS8795: Partial method ‘CesiumFeature.GetComponentType(string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(271,37): error CS8795: Partial method ‘CesiumFeature.GetMetadataType(string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeature.cs(277,29): error CS8795: Partial method ‘CesiumFeature.IsNormalized(string)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdTexture.cs(35,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdTexture.cs(35,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdTexture.cs(60,30): error CS8795: Partial method ‘CesiumFeatureIdTexture.GetFeatureIdForUV(Vector2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdTexture.cs(63,39): error CS8795: Partial method ‘CesiumFeatureIdTexture.GetFeatureIdForVertex(long)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumFeatureIdTexture.cs(66,39): error CS8795: Partial method ‘CesiumFeatureIdTexture.GetFeatureIdFromRaycastHit(RaycastHit)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGeoreference.cs(86,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGeoreference.cs(86,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGeoreference.cs(626,35): error CS8795: Partial method ‘CesiumGeoreference.ComputeLocalToEarthCenteredEarthFixedTransformation()’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPolygonRasterOverlay.cs(15,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPolygonRasterOverlay.cs(15,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPolygonRasterOverlay.cs(105,41): error CS8795: Partial method ‘CesiumPolygonRasterOverlay.AddToTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPolygonRasterOverlay.cs(107,41): error CS8795: Partial method ‘CesiumPolygonRasterOverlay.RemoveFromTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumSimplePlanarEllipsoidCurve.cs(12,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumSimplePlanarEllipsoidCurve.cs(12,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumSimplePlanarEllipsoidCurve.cs(82,32): error CS8795: Partial method ‘CesiumSimplePlanarEllipsoidCurve.GetPosition(double, double)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumSimplePlanarEllipsoidCurve.cs(84,30): error CS8795: Partial method ‘CesiumSimplePlanarEllipsoidCurve.CreateFromCenteredFixed(CesiumEllipsoid, double3, double3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumSimplePlanarEllipsoidCurve.cs(85,30): error CS8795: Partial method ‘CesiumSimplePlanarEllipsoidCurve.CreateFromLongitudeLatitudeHeight(CesiumEllipsoid, double3, double3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileExcluder.cs(13,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileExcluder.cs(13,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileExcluder.cs(44,31): error CS8795: Partial method ‘CesiumTileExcluder.AddToTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(38,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(38,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileMapServiceRasterOverlay.cs(10,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\NativeDownloadHandler.cs(7,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\NativeDownloadHandler.cs(7,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementation’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\NativeDownloadHandler.cs(27,30): error CS8795: Partial method ‘NativeDownloadHandler.ReceiveDataNative(IntPtr, int)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumTileMapServiceRasterOverlay.cs(89,41): error CS8795: Partial method ‘CesiumTileMapServiceRasterOverlay.AddToTileset(Cesium3DTileset)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(230,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetBoolean(long, bool)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(346,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt16(long, short)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(384,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt16(long, ushort)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(423,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt32(long, int)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(461,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt32(long, uint)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(499,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt64(long, long)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(537,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt64(long, ulong)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(578,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetFloat(long, float)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(618,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetDouble(long, double)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(663,29): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt2(long, int2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(704,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt2(long, uint2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(744,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetFloat2(long, float2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(782,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetDouble2(long, double2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(826,29): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt3(long, int3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(870,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt3(long, uint3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(913,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetFloat3(long, float3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(954,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetDouble3(long, double3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(998,29): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt4(long, int4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1042,30): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt4(long, uint4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1085,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetFloat4(long, float4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1126,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetDouble4(long, double4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1172,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt2x2(long, int2x2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1214,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt2x2(long, uint2x2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1256,33): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetFloat2x2(long, float2x2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1295,34): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetDouble2x2(long, double2x2)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1342,31): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetInt3x3(long, int3x3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumPropertyTableProperty.cs(1389,32): error CS8795: Partial method ‘CesiumPropertyTableProperty.GetUInt3x3(long, uint3x3)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\TestGltfModel.cs(8,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\TestReinterop.cs(8,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumWgs84Ellipsoid.cs(10,6): error CS0246: The type or namespace name ‘ReinteropNativeImplementationAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\ConfigureReinterop.cs(23,6): error CS0246: The type or namespace name ‘ReinteropAttribute’ could not be found (are you missing a using directive or an assembly reference?)

Please help to solve this issue

Hi,

I am having the same issue. i upgraded to version 1.15.3 but after doing that my existing project which was working fine in 1.13 version has got 260 compiler errors now.

Some of the errors are:

Library\PackageCache\com.unity.ai.navigation@2.0.5\Runtime\NavMeshLink.cs(468,26): error CS0117: ‘NavMesh’ does not contain a definition for ‘IsLinkValid’

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\Cesium3DTile.cs(2,7): error CS0246: The type or namespace name ‘Reinterop’ could not be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumGlobeAnchor.cs(636,30): error CS8795: Partial method ‘CesiumGlobeAnchor.SetNewLocalToGlobeFixedMatrix(double4x4)’ must have an implementation part because it has accessibility modifiers.

Library\PackageCache\com.cesium.unity@54c98feb8d\Runtime\CesiumMetadataValue.cs(1730,39): error CS8795: Partial method ‘CesiumMetadataValue.ConvertToInt32(CesiumMetadataValue, int)’ must have an implementation part because it has accessibility modifiers.

There are more similar errors all are in package cache.

Please help to solve this issue.

Thanks in advance

Sorry you’re having trouble @sheik_azar. Can you please tell me:

  1. What version of Unity are you using?
  2. How did you go about upgrading Cesium for Unity?
  1. My unity version i was using before was unity 6 (6000.0.25f1) where i did all the development. Tried upgrading to unity 2022 as well but issue did not fix
  2. I upgraded using the git url in the package manager after which 1.13 was replaced by 1.15.1

Hi Kevin,
The game program generated from my Unity project also experienced this Visual C++ Crash, but strangely, I hadn’t yet upgraded Cesium for Unity in my project to V1.15.3 as you described. Now, when I run my old game program, it works normally. What could be the reason for this?

Even for me initially it was working sometimes and sometimes crashes but now its always crashing

@sheik_azar git URLs are not a valid way to install Cesium for Unity. It uses native code, which will be missing when installed that way. Instead, you need to use our scoped registry or the built .tgz file, as mentioned in the top most. The Quickstart has detailed instructions for using the scoped registry.

Hi @Icekettle, welcome to the community!

Now, when I run my old game program, it works normally. What could be the reason for this?

You could just be getting lucky. The problem won’t appear until certain problematic tiles are downloaded. Of course, if you’re not using Google Photorealistic 3D Tiles at all, then you shouldn’t have any problem.

Another possibility is that Google has fixed this! We have been in contact with them and have been informed that they are working on a fix on their end.

1 Like

Hi @Kevin_Ring,

I have upgraded cesium as per the instructions you gave and it looks to work fine for now. I will update here if the issue still persists

1 Like

We’ve received word from Google that they’ve rolled back their change that triggered the issue in the first place. So at this point, Google Photorealistic 3D Tiles should be working even in old versions of Cesium for Unity. Please let us know if you’re still having trouble! And of course, we do still recommend you upgrade as soon as practical, in order to avoid possible issues re-emerging in the future.

1 Like

Hi Kevin,

Its again crashing with the below error.

ERROR: SymGetSymFromAddr64, GetLastError: ‘Attempt to access invalid address.’ (Address: 00007FFD3BA87374)
0x00007FFD3BA87374 (KERNEL32) (function-name not available)
0x00007FFD3BFBCC91 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========

A crash has been intercepted by the crash handler. For call stack and other details, see the latest crash report generated in:

  • C:/Users/ssheikni/AppData/Local/Temp/2/Unity/Editor/Crashes

@sheik_azar there’s very limit information in that error report, so I can’t really say what might cause it. Is there any more information in the crash report that it mentions?

But to start with, please tell me more about what was going on when you saw this crash. Are you still using Cesium for Unity v1.15.3, or have you downgraded? Can you reproduce it consistently, or did it only happen once?

Hi Kevin,

Please find more logs below.
Start importing Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Oswald Bold SDF.asset using Guid(0161d805a3764c089bef00bfe00793f5) (NativeFormatImporter) → (artifact id: ‘6988cc1dbe0cf17afd09b1ccc9092622’) in 0.0036144 seconds
Start importing Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Bangers SDF.asset using Guid(125cb55b44b24c4393181402bc6200e6) (NativeFormatImporter) → (artifact id: ‘971dcbd79011ad877166be6f8c919d24’) in 0.0047017 seconds
Start importing Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Roboto-Bold SDF.asset using Guid(5302535af1044152a457ed104f1f4b91) (NativeFormatImporter) → (artifact id: ‘a2c1447554ad47af4d3ea6e23223e867’) in 0.0055284 seconds
Start importing Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Anton SDF.asset using Guid(8a89fa14b10d46a99122fd4f73fca9a2) (NativeFormatImporter) → (artifact id: ‘a87692139d087bdc2c8b17a72b0479e0’) in 0.0029543 seconds
Start importing Assets/TextMesh Pro/Examples & Extras/Resources/Fonts & Materials/Electronic Highway Sign SDF.asset using Guid(dc36b3fdc14f47ebb36fd484a67e268a) (NativeFormatImporter) → (artifact id: ‘3327bd87b8e34626de2a6cd3e364f11f’) in 0.0029369 seconds
Start importing Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset using Guid(2e498d1c8094910479dc3e1b768306a4) (NativeFormatImporter) → (artifact id: ‘1303a2317e9a70ebdc2cb8d6197e2682’) in 0.0030479 seconds
Refreshing native plugins compatible for Editor in 27.88 ms, found 6 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
Asset Pipeline Refresh (id=563c6788957a49a40ad5b1b64ca18c64): Total: 0.145 seconds - Initiated by StopAssetImportingV2(NoUpdateAssetOptions)
[Physics::Module] Cleanup current backned.
[Physics::Module] Id: 0xf2b8ea05
[Licensing::IpcConnector] License Notification channel disconnected successfully.
[Licensing::IpcConnector] License Client channel disconnected successfully.
AcceleratorClientConnectionCallback - disconnected - :0
Cleanup mono
abort_threads: Failed aborting id: 0000000000006BD0, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 000000000000427C, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 00000000000027C4, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 0000000000001DAC, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 0000000000006BD0, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 000000000000427C, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 00000000000027C4, mono_thread_manage will ignore it

abort_threads: Failed aborting id: 0000000000001DAC, mono_thread_manage will ignore it

debugger-agent: Unable to listen on 3972
Checking for leaked weakptr:
Found no leaked weakptrs.
[Package Manager] Server process was shutdown
##utp:{“type”:“MemoryLeaks”,“version”:2,“phase”:“Immediate”,“time”:1740771818061,“processId”:11984,“allocatedMemory”:120811277,“memoryLabels”:[{“Default”:27677},{“Permanent”:15356},{“NewDelete”:361589},{“Thread”:4230344},{“Manager”:814890},{“VertexData”:3045842},{“Geometry”:816},{“Texture”:223608},{“Shader”:81099},{“Material”:24},{“GfxDevice”:55392},{“Animation”:210448},{“Audio”:4040},{“FontEngine”:256},{“Physics”:929},{“Serialization”:21761},{“Input”:14816},{“JobScheduler”:33024},{“TextLib”:32},{“Mono”:32},{“ScriptingNativeRuntime”:155060},{“BaseObject”:1619920},{“Resource”:1304},{“Renderer”:2928},{“Transform”:4646},{“File”:79871},{“WebCam”:752},{“Culling”:32},{“Terrain”:11394},{“Wind”:24},{“STL”:40},{“String”:12931},{“DynamicArray”:154279},{“HashMap”:147951},{“Utility”:2661536},{“Curl”:-7256},{“PoolAlloc”:2008},{“AI”:104},{“TypeTree”:1683082},{“ScriptManager”:512},{“RuntimeInitializeOnLoadManager”:64},{“SpriteAtlas”:112},{“GI”:7888},{“Director”:8240},{“CloudService”:7408},{“WebRequest”:95353051},{“VR”:45961},{“SceneManager”:496},{“Video”:64},{“LazyScriptCache”:32},{“NativeArray”:9144},{“Camera”:17},{“Secure”:1},{“SerializationCache”:1576},{“APIUpdating”:10320},{“Subsystems”:336},{“VirtualTexturing”:57888},{“StaticSafetyDebugInfo”:278528},{“Analytics”:560},{“Hierarchy”:272},{“Gui”:1715},{“EditorUtility”:345915},{“VersionControl”:4},{“Undo”:912},{“AssetDatabase”:8952334},{“EditorGi”:328},{“UnityConnect”:24496},{“Upm”:1996},{“DrivenProperties”:72},{“LocalIPC”:266},{“ProfilerEditor”:9738},{“CoreBusinessMetrics”:14762},{“Licensing”:3624},{“AssetReference”:32},{“IPCStream”:32}]}

I am currently using cesium 1.15.3

Before it was consistent but now it occurs once everyday

@sheik_azar I don’t think that portion of the log has any information related to the crash. Please start a new thread and try to include as much information as you can about what triggers the problem. Ultimately, if we can’t reproduce the problem ourselves, it will be extremely difficult to fix it. If you can provide step-by-step instructions to reproduce it, preferably starting with the Cesium for Unreal Samples project, that would be amazing! Also, please include the complete log if possible, as that may help as well.

We still have crashes when using 3D tiles on Hololens

My colleague has created a ticket on github, we were using a previous version at this time

According to latest tests it can occur very fast, I suspect a memory leak because the memory footprint keeps growing until the crash

@raggnic prior to Cesium for Unity v1.15.4, Tile instances loaded from external tilesets were never unloaded. That wasn’t a leak, exactly, but it could lead to the behavior you’re describing with a tileset like Google Photorealistic 3D Tiles that uses external tilesets a lot. This has been fixed in v1.15.4, so please try it out and let us know if it’s working better for you.