Hi, first of all thanks for this amasing software!
I got an issue installing cesium in unity on linux.
to my system:
6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 12 Sep 2024 17:21:02 +0000 x86_64 GNU/Linux
unityhub version 3.9.1 --> https://aur.archlinux.org/packages/unityhub
I installed the 2022.3.48f1 editor version
### first attempt
I created a new project (3D core).
under "services" -> "gerneral settings" -> "Package Manager" I added following:
Cesium
https://unity.pkg.cesium.com
com.cesium.unity
then I installed the cesium plugin in version 1.13.0
The consol log give me some errors:
Library/PackageCache/com.cesium.unity@1.13.0/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?)
seems that Reinterop for dotnet is not coming with that repo plugin.
### second attempt
I followd the instructions here: https://github.com/CesiumGS/cesium-unity/blob/main/Documentation~/developer-setup.md
installed:
extra/dotnet-sdk 8.0.8.sdk108-1 (85.3 MiB 300.0 MiB) (Installed)
extra/nasm 2.16.03-1 (341.2 KiB 2.4 MiB) (Installed)
dotnet --version 8.0.108
cmake version 3.30.4
cloned cesium-unity-samples
then cesium-unity inside it.
in cesium-unity-samples/Packages/com.cesium.unity i called:
[<user> com.cesium.unity]$ dotnet publish Reinterop~ -o .
MSBuild version 17.8.5+b5265ef37 for .NET
Determining projects to restore...
All projects are up-to-date for restore.
Reinterop -> /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/Reinterop~/bin/Debug/netstandard2.0/Reinterop.dll
Reinterop -> /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/
got the message:
DllNotFoundException: CesiumForUnityNative assembly:<unknown assembly> type:<unknown type> member:(null)
NotImplementedException: The native implementation is missing so OnValidate cannot be invoked.
did:
cd cesium-unity-samples/Packages/com.cesium.unity/native~
cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug
run into following error:
[<user> native~]$ cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug
CMake Deprecation Warning at extern/tidy-html5/CMakeLists.txt:20 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at extern/tidy-html5/CMakeLists.txt:26 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
-> TIDY_SO_VERSION = 58. This is an EVEN (stable) release.
-- *** Debug Logging is NOT enabled.
-- *** Building support for runtime configuration files.
-- *** Only building static library STATIC, version 5.8.0, date 2021.07.10
-- VCPKG_TRIPLET x64-linux-unity
-- EZVCPKG v0.1 starting up
Website: https://github.com/jherico/ezvcpkg
-- EZVCPKG_BASEDIR envrionment variable not found and basedir not set, using default /home/<user>/.ezvcpkg
-- EZVCPKG initializing
commit: 2024.07.12
repository: https://github.com/microsoft/vcpkg.git
local dir: /home/<user>/.ezvcpkg/2024.07.12
-- EZVCPKG Building/Verifying package asyncplusplus using triplet x64-linux-unity
CMake Error at extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:83 (message):
EZVCPKG failed with error 1
Call Stack (most recent call first):
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:185 (EZVCPKG_CHECK_RESULTS)
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:279 (EZVCPKG_BUILD)
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:293 (EZVCPKG_FETCH_IMPL)
extern/cesium-native/CMakeLists.txt:50 (ezvcpkg_fetch)
*** The output from the command was:
error: Invalid triplet: x64-linux-unity
Built-in Triplets:
x64-osx
arm-neon-android
x64-uwp
x64-windows
arm64-android
x86-windows
arm64-osx
x64-linux
arm64-uwp
x64-android
arm64-windows
x64-windows-static
Community Triplets:
arm64-osx-dynamic
mips64-linux
x64-windows-static-release
x64-xbox-xboxone
x86-android
arm64-ios
x64-openbsd
x64-windows-static-md
ppc64le-linux
arm64-linux-release
arm-linux-release
arm64-linux
x86-mingw-static
x64-mingw-static
s390x-linux
x64-windows-static-md-release
x86-ios
x64-osx-dynamic
x64-linux-release
x86-windows-static-md
x86-windows-static
loongarch32-linux-release
arm64-ios-release
s390x-linux-release
arm64-ios-simulator
arm-windows
arm64-osx-release
arm-mingw-static
arm-windows-static
riscv32-linux
x86-windows-v120
loongarch64-linux
arm-mingw-dynamic
loongarch64-linux-release
arm-linux
riscv64-linux-release
arm64-mingw-dynamic
x64-xbox-xboxone-static
arm-android
x64-linux-dynamic
x64-uwp-static-md
arm64ec-windows
wasm32-emscripten
x64-osx-release
x64-ios
ppc64le-linux-release
x64-xbox-scarlett-static
x64-freebsd
armv6-android
arm64-mingw-static
arm-uwp-static-md
arm-ios
arm64-uwp-static-md
x64-windows-release
x86-uwp
x64-xbox-scarlett
arm64-windows-static
arm64-ios-simulator-release
x86-uwp-static-md
x86-mingw-dynamic
arm64-windows-static-md
riscv32-linux-release
riscv64-linux
x86-freebsd
arm64-windows-static-release
loongarch32-linux
arm-uwp
x86-linux
x64-mingw-dynamic
Overlay Triplets from "/home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/vcpkg/triplets":
x64-android-unity
x64-windows-unity
arm64-osx-unity
arm64-ios-unity
arm64-android-unity
x64-osx-unity
x64-uwp-unity
arm64-uwp-unity
See https://learn.microsoft.com/vcpkg/users/triplets?WT.mc_id=vcpkg_inproduct_cli for more information.
CMake Error at extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:102 (message):
Call Stack (most recent call first):
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:185 (EZVCPKG_CHECK_RESULTS)
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:279 (EZVCPKG_BUILD)
extern/cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:293 (EZVCPKG_FETCH_IMPL)
extern/cesium-native/CMakeLists.txt:50 (ezvcpkg_fetch)
-- Configuring incomplete, errors occurred!
(this is maybe interresint for you guys)
work around it with following:
cd /home/<user>/.ezvcpkg/2024.07.12
cp triplets/x64-linux.cmake triplets/x64-linux-unity.cmake
run the first cmake call again:
[<user> native~]$ cmake -B build -S . -DCMAKE_BUILD_TYPE=Debug
CMake Deprecation Warning at extern/tidy-html5/CMakeLists.txt:20 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
CMake Warning (dev) at extern/tidy-html5/CMakeLists.txt:26 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
-> TIDY_SO_VERSION = 58. This is an EVEN (stable) release.
-- *** Debug Logging is NOT enabled.
-- *** Building support for runtime configuration files.
-- *** Only building static library STATIC, version 5.8.0, date 2021.07.10
-- VCPKG_TRIPLET x64-linux-unity
-- EZVCPKG v0.1 starting up
Website: https://github.com/jherico/ezvcpkg
-- EZVCPKG_BASEDIR envrionment variable not found and basedir not set, using default /home/<user>/.ezvcpkg
-- EZVCPKG initializing
commit: 2024.07.12
repository: https://github.com/microsoft/vcpkg.git
local dir: /home/<user>/.ezvcpkg/2024.07.12
-- EZVCPKG Building/Verifying package asyncplusplus using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package expected-lite using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package fmt using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package glm using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package ms-gsl using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package rapidjson using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package spdlog using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package stb using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package uriparser using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package abseil using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package draco using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package ktx using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package modp-base64 using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package meshoptimizer using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package openssl using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package s2geometry using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package libjpeg-turbo using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package sqlite3 using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package tinyxml2 using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package libwebp using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package zlib-ng using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package picosha2 using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package earcut-hpp using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package cpp-httplib[core] using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package libmorton using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package zstd using triplet x64-linux-unity
-- EZVCPKG Building/Verifying package catch2 using triplet x64-linux-unity
-- EZVCPKG done
-- CMAKE_TOOLCHAIN_FILE /home/<user>/.ezvcpkg/2024.07.12/scripts/buildsystems/vcpkg.cmake
-- PACKAGE_BASE_DIR /home/<user>/.ezvcpkg/2024.07.12/packages
-- PACKAGE_BUILD_DIR /home/<user>/.ezvcpkg/2024.07.12/installed/x64-linux-unity
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done (7.4s)
-- Generating done (0.4s)
-- Build files have been written to: /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/build
then the second one:
[<user> native~]$ cmake --build build -j14 --target install --config Debug
[ 5%] Built target tidy-static
[ 7%] Built target CesiumUtility
[ 8%] Built target CesiumJsonWriter
[ 8%] Built target Cesium3DTiles
[ 11%] Built target CesiumGeometry
[ 14%] Built target CesiumJsonReader
[ 16%] Built target CesiumAsync
[ 20%] Built target CesiumGltf
[ 21%] Built target Cesium3DTilesReader
[ 22%] Built target Cesium3DTilesWriter
[ 22%] Built target CesiumIonClient
[ 25%] Built target CesiumGeospatial
[ 27%] Built target CesiumGltfWriter
[ 29%] Built target CesiumGltfReader
[ 29%] Built target CesiumGltfContent
[ 45%] Built target CesiumForUnityNative-Editor
[ 47%] Built target CesiumQuantizedMeshTerrain
[ 49%] Built target Cesium3DTilesContent
[ 52%] Built target CesiumRasterOverlays
[ 57%] Built target Cesium3DTilesSelection
[100%] Built target CesiumForUnityNative-Runtime
Install the project...
-- Install configuration: "Debug"
-- Up-to-date: /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/../Editor/./libCesiumForUnityNative-Runtime.so
-- Up-to-date: /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/../Editor/./libCesiumForUnityNative-Editor.so
now in unity i added the cesium-unity-samples project but with 2022.3.48f1 editor version (the 2021 one seems not work on arch anymore). logedin into cesium ion. Then added a Blank 3D Tiles Tileset on the gameobject Cesium3DTileset I switch to url and use my maps api url https://tile.googleapis.com/v1/3dtiles/root.json?key=<my key>
then I get following error:
[2024-10-01 23:49:28.695] [error] [TilesetJsonLoader.cpp:697] Error when parsing tileset JSON, error code Invalid value. at byte offset 0
UnityEngine.Debug:Log (object)
Reinterop.ReinteropInitializer:UnityEngine_Debug_CallLog_FA05wu8x__otZNsgdHTnU9A (intptr) (at ./Reinterop/Reinterop.RoslynSourceGenerator/ReinteropInitializer.cs:13570)
Reinterop.ReinteropInitializer/ActionNativeFunction:Invoke () (at ./Reinterop/Reinterop.RoslynSourceGenerator/ReinteropInitializer.cs:10186)
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()
in /home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/Cesium3DTilesSelection/src/TilesetJsonLoader.cpp in line 697
...
rapidjson::Document tilesetJson;
tilesetJson.Parse(
reinterpret_cast<const char*>(responseData.data()),
responseData.size());
if (tilesetJson.HasParseError()) {
SPDLOG_LOGGER_ERROR(
pLogger,
"Error when parsing tileset JSON, error code {} at byte offset {}",
tilesetJson.GetParseError(),
tilesetJson.GetErrorOffset());
return TileLoadResult::createFailedResult(std::move(pCompletedRequest));
}
// Save the parsed external tileset into custom data.
// We will propagate it back to tile later in the main
// thread
TilesetContentLoaderResult<TilesetJsonLoader> externalTilesetLoader =
parseTilesetJson(
pLogger,
tileUrl,
tilesetJson,
tileTransform,
...
i change the error message parameter to tileUrl wich gave me the uri provided by the maps google api
https://tile.googleapis.com/v1/3dtiles/datasets/CgA/files/UlRPVEYubm9kZWRhdGEucGxhbmV0b2lkPWVhc<some removal>PTYsaW1hZ2VyeV9lcG9jaD0xMDA5LGFsaWdubWVudF92ZXJzaW9uPVJPQ0tUUkVFXzk4OF9HT09HTEVfREFUVU1fMjAyNDA3MDRUMDc1M1pfZ2VuZXJhdGVkX2F0XzIwMjQwOTE3VDEyMDha.glb
this is a valid glb compressed Json file wich I checked with https://github.khronos.org/glTF-Validator/
the google maps API sayes somethng from:
"extensionsUsed": [
"3DTILES_content_gltf"
],
"extensionsRequired": [
"3DTILES_content_gltf"
]
}
which I didnt investigated further.
It seems that the cesium plugin have an Issue decompressin glb files.
Does you have any idea how i can fix it?
Hi, first of all thanks for this amasing software!
I got an issue installing cesium in unity on linux.
to my system:
6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 12 Sep 2024 17:21:02 +0000 x86_64 GNU/Linuxunityhub version 3.9.1--> https://aur.archlinux.org/packages/unityhubI installed the 2022.3.48f1 editor version
### first attempt
I created a new project (3D core).
under "services" -> "gerneral settings" -> "Package Manager" I added following:
then I installed the cesium plugin in version 1.13.0
The consol log give me some errors:
seems that Reinterop for dotnet is not coming with that repo plugin.
### second attempt
I followd the instructions here: https://github.com/CesiumGS/cesium-unity/blob/main/Documentation~/developer-setup.md
installed:
extra/dotnet-sdk 8.0.8.sdk108-1 (85.3 MiB 300.0 MiB) (Installed)extra/nasm 2.16.03-1 (341.2 KiB 2.4 MiB) (Installed)dotnet --version 8.0.108cmake version 3.30.4cloned cesium-unity-samples
then
cesium-unityinside it.in
cesium-unity-samples/Packages/com.cesium.unityi called:got the message:
did:
run into following error:
(this is maybe interresint for you guys)
work around it with following:
run the first cmake call again:
then the second one:
now in unity i added the
cesium-unity-samplesproject but with 2022.3.48f1 editor version (the 2021 one seems not work on arch anymore). logedin into cesium ion. Then added aBlank 3D Tiles Tileseton the gameobjectCesium3DTilesetI switch to url and use my maps api urlhttps://tile.googleapis.com/v1/3dtiles/root.json?key=<my key>then I get following error:
in
/home/<user>/cesium-unity-samples/Packages/com.cesium.unity/native~/extern/cesium-native/Cesium3DTilesSelection/src/TilesetJsonLoader.cppin line 697... rapidjson::Document tilesetJson; tilesetJson.Parse( reinterpret_cast<const char*>(responseData.data()), responseData.size()); if (tilesetJson.HasParseError()) { SPDLOG_LOGGER_ERROR( pLogger, "Error when parsing tileset JSON, error code {} at byte offset {}", tilesetJson.GetParseError(), tilesetJson.GetErrorOffset()); return TileLoadResult::createFailedResult(std::move(pCompletedRequest)); } // Save the parsed external tileset into custom data. // We will propagate it back to tile later in the main // thread TilesetContentLoaderResult<TilesetJsonLoader> externalTilesetLoader = parseTilesetJson( pLogger, tileUrl, tilesetJson, tileTransform, ...i change the error message parameter to tileUrl wich gave me the uri provided by the maps google api
this is a valid glb compressed Json file wich I checked with https://github.khronos.org/glTF-Validator/
the google maps API sayes somethng from:
which I didnt investigated further.
It seems that the cesium plugin have an Issue decompressin glb files.
Does you have any idea how i can fix it?