We are developing a unity application in an isolated environment that does not have internet connection. We have managed to install all the necessary unity packages, including the “Cesium for Unity” from disk.
It seems like the Cesium-for-Unity package requires a shared library or a plugin that is not available by default.
The following message is displayed:
“NotImplementedException: The native implementation is missing so Update cannot be invoked.
This may be caused by a missing call to CreateImplementation in one of your constructors,
or it may be that the entire native implementation shared library is missing or out of date.
CesiumForUnity.Cesium3DTileset.Update () (at C:/Cesium_unity/UnityPackages/com.cesium.unity@0.2.0/Runtime/generated/Reinterop/Reinterop.RoslynSourceGenerator/Cesium3DTileset-generated.cs:469)”
Have you built Cesium for Unity yourself? If so, you need to follow the developer setup guide:
If you’ve installed Cesium for Unity using the Unity Package Manager or by downloading the package .tgz from our GitHub releases page, it should include the necessary native DLLs, but you might get that error if you’re trying to use an unsupported platform. We currently support:
Windows with x86-64 processors
macOS with x86-64 or Apple Silicon
Android with x86-64 or ARM64
iOS
Another possibility is that one of the .meta files has been changed, so Unity isn’t loading the correct plugin.
I’ve originally copies the package from a unity project Library/PackageCache on an internet connected machine and installed it from disk on the isolated network machine.
Following your recommendation I downloaded the package from your github, but then it did not work even on the machine that is connected to the internet.
It seems like the package is not self contained and that it includes a hidden dependency.
You can reproduce the issue by removing the cesuim package from your project in the package manager and then reinstalling it from disk (a copy you download from github)
The package is definitely self-contained, and does not contain a hidden dependency. But there is a native code portion that has to be a) present, and b) compatible. I’m not sure why it’s not in your case. Can you walk me through the steps you’re using? For example, when you say you’re downloading the package from GitHub, do you mean the “com.cesium.unity-0.2.0.tgz” file from this page?
And then how are you installing it? As a tarball via the Unity Package Manager should work. However, if you previously had the plugin installed in another way (from the internet-connected registry, for instance), you’ll need to restart Unity after removing it, because Unity is unfortunately not able to unload native plugins without a restart. If you still have trouble after installing the new one, I’d recommend restarting the Editor again to be sure.