Example - Pause Player Input
You want to take the camera away from the player for a moment (a cutscene, a tutorial pop-up, a forced framing during a story beat), without them fighting your animation by dragging or scrolling.
SetInputEnabled(bool) on the OrbitalCameraSystem enables or disables every InputAdapter in the camera's children in one call: mouse, keyboard, touch, UI buttons, and the New Input System adapter if you're using it. The public-API animation methods keep working, so your scripted camera moves run uninterrupted.
using UnityEngine;
using Goehler.OrbitalCam;
public class CameraInputGate : MonoBehaviour {
[SerializeField] private OrbitalCameraSystem _camera;
public void Pause() => _camera.SetInputEnabled(false);
public void Resume() => _camera.SetInputEnabled(true);
}
Call Pause() before your cutscene starts, Resume() when it ends.
Note
SetInputEnabled is the broad option. It flips every input source at once. For finer control (fx. suppress drag-to-pan but still allow zoom), use the individual adapter components on the camera's children and toggle their enabled flag, or their axis-specific bools directly: legacyMouse.UseMouseForMovement = false, legacyTouch.UseTouchPinchForZoom = false, etc.
This pattern is wired up in the Scripting Demo scene. Hit Play, click the Disable Controls button (it becomes Enable Controls while input is off), then try to drag, scroll, or zoom: the OrbitalCam ignores everything until you click the button again.
This works well with the Cinematic example: gate input off, run the camera animation sequence, gate input back on at the end.