Build input settings surfaces directly

This commit is contained in:
Meta Vens 2026-06-29 05:23:58 +01:00
commit 70827d03b0
3 changed files with 41 additions and 32 deletions

View file

@ -156,7 +156,13 @@ public class InputDisplayLayout : MonoBehaviour
EnsureInputAsset();
EnsureCaptureAction();
var document = AetheriaRuntimeInputSettingsSurfaceBuilder.Build(ProjectSurfaceState());
var runtimeSettings = ResolvePlayerSettings();
var document = AetheriaRuntimeInputSettingsSurfaceBuilder.Build(
ProjectObservedBindings(),
runtimeSettings?.ActionBarInputs ?? Array.Empty<string>(),
capturePending: _captureBindingIndex >= 0 && !string.IsNullOrWhiteSpace(_captureActionName),
capturePrompt: BuildCapturePrompt(),
updatedAtUtc: DateTime.UtcNow.ToString("O"));
_surfaceDocument = AetheriaEveUnitySurfaceHost.RenderRuntime(
transform,
@ -167,17 +173,6 @@ public class InputDisplayLayout : MonoBehaviour
_surfaceChrome);
}
private AetheriaRuntimeInputSettingsSurfaceState ProjectSurfaceState()
{
var runtimeSettings = ResolvePlayerSettings();
return AetheriaRuntimeInputSettingsSurfaceBuilder.Project(
ProjectObservedBindings(),
runtimeSettings?.ActionBarInputs ?? Array.Empty<string>(),
capturePending: _captureBindingIndex >= 0 && !string.IsNullOrWhiteSpace(_captureActionName),
capturePrompt: BuildCapturePrompt(),
updatedAtUtc: DateTime.UtcNow.ToString("O"));
}
private IReadOnlyList<AetheriaRuntimeObservedInputBinding> ProjectObservedBindings()
{
if (Input == null)