Skip to content

CameraControls rework (Input/Controller overhaul) #7398

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 209 commits into
base: main
Choose a base branch
from

Conversation

kpal81xd
Copy link
Contributor

@kpal81xd kpal81xd commented Mar 3, 2025

Overview

This PR aims to split the camera controls down into two core components:

  • Input Sources which represent a collection of deltas generated from one or more input devices. These can range from a mouse movement delta to a gamepad joystick delta.
  • Input Controllers which represent the constrained transformations that are to be performed e.g. orbiting around a particular focus point or camera flying (unconstrained) .

Together the deltas from an Input can be collected into a "frame" of deltas which are then applied to the specified controller to perform the required action.

Input Sources

SingleGestureSource - Single touch or virtual joystick input
DualGestureSource - Split screen touch or virtual joystick input
MultiTouchSource - Multi touch input (includes pinch handling)
KeyboardMouseSource - Keyboard and mouse input
GamepadSource - Game pad input

Input Controllers

FlyController - Applies free-fly mechanics to a base transform
OrbitController - Applies orbiting mechanics to a base transform

Design Doc

https://docs.google.com/document/d/1r2ywuzxbte6DwlEJzWgyD-fTDNyp-7P0PKLFefrgV9Y/edit?usp=sharing

… layout parameter and update default layout values
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants