CesiumGS / CesiumGS/cesium-unity

Detangle `CesiumCameraController` from `CesiumFlyToController`

Open
#434 0 comments 0 reactions 0 assignees View on GitHub
quality
Dominant language
C#
Stars
535
Forks
132
Avg merge
6h 45m
Merged PRs (30d)
1

Description

The changes in #422 raise some implications about our current component design that I think we should consider, to improve code quality and clarity.

While working with XR, @azrogers found a scenario where:

- The XR origin needed to be anchored by `CesiumGlobeAnchor`, but
- The camera is a child game object that will contain `CesiumCameraController` and `CesiumFlyToController`.

It feels conceptually strange that the `CesiumFlyToController` is piloting a parent object, or more generally some object that it isn't actually attached to. Historically we have attached it to a camera in order to make it fly between locations, but we should look to decouple this from `CesiumCameraController`. Cesium for Unreal does this and also seems to account for movement interruption, so maybe we can take the implementation from there.

There may be more design implications to consider, but I can't remember completely what we discussed offline. @azrogers feel free to weigh in if I missed anything!

Contributor guide

Open the contributing guide

Research direction

Start by reviewing CesiumCameraController and CesiumFlyToController, then read the changes in #422 and compare the Cesium for Unreal implementation. Done means agreeing on a decoupled controller design that supports the XR hierarchy and accounts for movement interruption.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, unity
Domain
computer-graphics, game-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.