Inquiry on Using the screen-space-controller Feature

Hello,

I would like to use the screen-space-controller feature of Cesium for Unreal.

For the compilation process, I referred to the following guide:

I cloned the screen-space-controller branch using the recursive Git command, then configured and built the project using CMake with x64 and version=14.36 settings.

During the build process, I encountered some Unicode-related errors while extracting ktx and httplib, but I was able to resolve them.

The CMake build completed successfully.

After clicking “Open Project” in CMake, I opened cesium-unreal-extern.sln in Visual Studio 2022.

Inside the CMakeTargets folder, I opened the properties for the ALL_BUILD project and set the C++ standard to ISO C++20 (/std:c++20). The build then succeeded.

I then followed the documentation steps to set up the sample project:

Copied the \cesium-unreal-samples\Plugins\cesium-unreal\Documentation\Source folder to \cesium-unreal-samples

Navigated to the \cesium-unreal-samples directory

Right-clicked on the CesiumForUnrealSamples.uproject file

Selected “Generate Visual Studio project files”

After opening the generated .sln file and building the project in Development Game mode via Visual Studio 2022, I encountered the following linker errors:

LNK2019: unresolved external symbol “public: __cdecl UScreenSpaceCameraController::UScreenSpaceCameraController…”
LNK2001: unresolved external symbol “public: virtual void __cdecl UScreenSpaceCameraController::StaticRegisterNatives…”
LNK1120: unresolved external symbols
It appears that the sample project cannot find or link the symbols defined in the screen-space-controller plugin code, specifically UScreenSpaceCameraController.

In the dev.Build.cs file, I added the following lines to ensure proper linking:

PublicDependencyModuleNames.AddRange(new string { “Core”, “CoreUObject”, “Engine”, “InputCore”, “CesiumRuntime” });
CppStandard = CppStandardVersion.Cpp20;
bEnableExceptions = true;
Also, note that in my Visual Studio 2022 environment, both 14.36.32532 and 14.44.35207 toolsets are installed.

Did I miss anything during the integration process to expose the screen-space-controller properly to the sample project?
If possible, would you be willing to share a working Unreal sample project that already has the screen-space-controller feature applied?

Thank you very much in advance for your support.

Hi @equsjin, welcome to the community!

The screen-space-controller branch was developed by a member of the community, and isn’t officially supported, so our ability to help will be limited.

I suggest as a first step that you try building a version of Cesium for Unreal that is known to work, such as the v2.17.0 tag from our main repo. If you have trouble there, we should be able to help.

Once you have that working, you can try switching over to the screen-space-controller branch. That should at least help eliminate any potential problems with your development environment.