Video Recording Input Overlay

Video Recording Input Overlay is a Unity asset for visualizing mouse cursor movement, clicks, scroll input, and keyboard shortcuts in screen recordings of your Unity game or app. It is built for clearer tutorials, demos, devlogs, gameplay videos, and streams.

Get Video Recording Input Overlay in the Unity Asset Store

Video Recording Input Overlay is available in the Unity Asset Store. You can also visit the 4AI publisher page there to find related Unity tools and other published assets.

Description

Video Recording Input Overlay helps you create clearer tutorials, demos, devlogs, and gameplay videos by making user input visible directly inside the Unity Game view.

To see Video Recording Input Overlay in action, check our Album3D Demo or PlanetMars3D: Spirit Mission Demo apps on Steam.

Drop a ready-to-use prefab into your scene to show a UI cursor, click highlights, scroll feedback, and keystroke labels while recording. The overlay is built with Unity UI, so it can be styled, moved, enabled, disabled, or captured like other UI elements in your scene.

The asset supports projects using the Legacy Input Manager, the New Input System, or both. Unity Recorder is optional: the overlay can run all the time, or only while Unity Recorder is recording.

What this Unity recording asset helps you show

  • mouse cursor movement inside the recorded Game view
  • left, right, and middle mouse button activity
  • click, double-click, and scroll feedback
  • keyboard shortcuts and modifier keys
  • arrow, page, and mouse-button labels for viewer clarity
  • input overlay visuals that can be styled as Unity UI
  • always-on or Unity Recorder-gated recording workflows

Useful for real Unity video workflows

Video Recording Input Overlay is useful when viewers need to see how you interact with a Unity game, editor-driven demo scene, in-game UI, tool, prototype, or app. Showing input directly in the Game view makes tutorial steps easier to follow and demo recordings easier to understand.

It is designed for tutorials, product demos, devlogs, streams, gameplay captures, support videos, QA clips, and internal team recordings where mouse and keyboard actions matter.

Quick start

  1. Import the asset into your Unity project.
  2. Add VideoRecorderHelper.prefab or FileBrowserVideoRecorderHelper.prefab to a scene.
  3. Make sure the helper objects are under, or use, a Screen Space - Overlay Canvas.
  4. Enter Play Mode and record using your preferred recorder.
  5. If you want the overlay visible only while Unity Recorder is recording, enable the relevant useOnlyWhileRecorderRecording or startOnRecorderRecording options.

For Crosstales FileBrowser workflows, use FileBrowserVideoRecorderHelper.prefab or add FileBrowserSystemDialogCursorHook to a persistent GameObject.

Technical details

The asset is designed to work in Unity projects that use the Legacy Input Manager, the New Input System, or both. Unity Recorder is optional.

What is included

Ready-to-use prefabs

  • VideoRecorderHelper.prefab - combined helper prefab for typical video recording setups.
  • FileBrowserVideoRecorderHelper.prefab - helper prefab variant for projects that use Crosstales FileBrowser.
  • RecorderCursor.prefab - cursor, click, double-click, and scroll visualization.
  • RecorderKeyStrokeDisplay.prefab - keyboard shortcut and mouse-button display.

Demo scene

Demo/VideoRecordingInputOverlay_Demo.unity is a simple demo scene with instructions and VideoRecorderHelper.prefab. It is designed to test mouse movement, clicks, double-clicks, scroll actions, and keyboard shortcuts without requiring Unity Recorder.

Runtime scripts

  • RecorderCursor.cs follows the current mouse position with a UI cursor and shows click, double-click, and scroll indicators.
  • KeyStrokeDisplay.cs shows keyboard shortcuts, modifier keys, mouse buttons, arrow and page icons, scroll activity, and optional double-click indicators.
  • VideoOverlayController.cs enables or disables overlay objects together.
  • SystemDialogCursorOverride.cs temporarily makes the OS cursor visible, unlocks it, and clears custom cursor textures while native system dialogs are open.
  • FileBrowserSystemDialogCursorHook.cs is an optional Crosstales FileBrowser integration using reflection.
  • VideoOverlayInput.cs is the input compatibility layer for Legacy Input Manager and New Input System projects.
  • VideoOverlayRecorderState.cs is an optional Unity Recorder state helper using reflection, so Unity Recorder is not required.

Input system support

The asset supports Unity Active Input Handling modes for Input Manager (Legacy), Input System Package (New), and Both.VideoOverlayInput.cs uses the legacy Unity input API only when the Legacy Input Manager is enabled. In New Input System only projects, it uses reflection to read keyboard and mouse state without requiring a hard assembly definition reference toUnity.InputSystem.

Unity Recorder support

Unity Recorder is optional. The asset does not requirecom.unity.recorder to compile. When Unity Recorder is installed and the Recorder window exists, the overlay can check whether recording is active. When Unity Recorder is not installed, recorder-only modes simply behave as not recording.

Integrations

  • Unity Recorder - optional. The overlay can run all the time, or only while Unity Recorder is recording.
  • Crosstales FileBrowser - optional. Use FileBrowserVideoRecorderHelper.prefab or FileBrowserSystemDialogCursorHook to keep the OS cursor visible and usable while Crosstales native dialogs are open.

Both integrations are optional and use reflection, so the asset can be imported and compiled even when Unity Recorder or Crosstales FileBrowser is not installed.

Assembly definition and managed stripping notes

The asset includes 4AI_VideoRecordingInputOverlay.asmdef with no hard references to optional packages. If your own scripts are inside a custom assembly definition and need to access theVideoOverlay_4AI classes, add an assembly reference toVideoRecordingInputOverlayDef.

A link.xml file is included because the New Input System path is reflection-based. In IL2CPP or managed stripping builds, Unity may strip members that are only used through reflection. The file preserves selected Unity.InputSystem types and usesignoreIfMissing="1", so builds do not fail when the Input System package is not installed.

Troubleshooting

The overlay is not visible

Check whether recorder-only mode is enabled. If Unity Recorder is not installed, not open, or not recording, recorder-only mode stays inactive. Disable recorder-only mode for always-on behavior.

My script cannot find VideoOverlay_4AI

If your script is in a custom assembly definition, add a reference to VideoRecordingInputOverlayDef.

New Input System project does not show input in a build

Keep link.xml in the asset folder and ensure the Input System package is installed and enabled in Player Settings.

Crosstales FileBrowser dialogs leave the cursor hidden

Use FileBrowserVideoRecorderHelper.prefab or add FileBrowserSystemDialogCursorHook to a persistent GameObject. For other native dialog solutions, callSystemDialogCursorOverride.Enter() before opening the dialog and SystemDialogCursorOverride.Exit() after it closes.

Version and compatibility notes

The asset uses Unity UI components such as CanvasGroup,Graphic, Image, and Text. It is intended for Screen Space - Overlay layouts and works best when Unity Recorder, or your chosen video capture solution, captures the Game view or output that contains the overlay canvas.

Support and contact

For release questions, feature suggestions, support requests, or questions about using Video Recording Input Overlay in your Unity project, you can contact 4AI directly.