From f77b53ba9722733664ebd621a9880d613fc32e20 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 16 Jul 2026 16:15:27 +0100 Subject: [PATCH] Start hit feedback on its first rendered frame --- .../Runtime/EveUnityCombatPresentationRenderer.cs | 8 +++++++- .../Tests/Editor/EveUnityCombatPresentationTests.cs | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/org.gamecult.eve.unity-scene/Runtime/EveUnityCombatPresentationRenderer.cs b/packages/org.gamecult.eve.unity-scene/Runtime/EveUnityCombatPresentationRenderer.cs index 2e3e8ae..8c23259 100644 --- a/packages/org.gamecult.eve.unity-scene/Runtime/EveUnityCombatPresentationRenderer.cs +++ b/packages/org.gamecult.eve.unity-scene/Runtime/EveUnityCombatPresentationRenderer.cs @@ -24,6 +24,7 @@ namespace GameCult.Eve.UnityScene private LineRenderer? _hitB; private Material? _material; private float _hitUntil; + private float _pendingHitDuration; private EveUnityCombatPresentation? _lastPresentation; private Vector3 _lastCenter; private Vector3 _lastRight; @@ -55,6 +56,11 @@ namespace GameCult.Eve.UnityScene public void RefreshNow() { + if (_pendingHitDuration > 0) + { + _hitUntil = Time.unscaledTime + _pendingHitDuration; + _pendingHitDuration = 0; + } Current = EveUnityCombatPresentation.Find(_host?.ActiveProjection); if (Current == null || string.IsNullOrWhiteSpace(Current.SelectedTargetEntityId)) { @@ -138,7 +144,7 @@ namespace GameCult.Eve.UnityScene _lastUp = up; _lastRadius = Math.Max(0.8f, _lastRadius); _hasLastTarget = true; - _hitUntil = Time.unscaledTime + presentation.HitMarkerDurationSeconds; + _pendingHitDuration = Math.Max(_pendingHitDuration, presentation.HitMarkerDurationSeconds); } } diff --git a/packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnityCombatPresentationTests.cs b/packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnityCombatPresentationTests.cs index 065037e..8e4bc25 100644 --- a/packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnityCombatPresentationTests.cs +++ b/packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnityCombatPresentationTests.cs @@ -54,6 +54,9 @@ namespace GameCult.Eve.UnityScene.Tests typeof(EveUnityCombatPresentationRenderer) .GetMethod("OnShotAvailable", BindingFlags.Instance | BindingFlags.NonPublic)! .Invoke(renderer, new object[] { Shot(4, 9, true, 12, 0, "7.5,-3.25") }); + typeof(EveUnityCombatPresentationRenderer) + .GetField("_hitUntil", BindingFlags.Instance | BindingFlags.NonPublic)! + .SetValue(renderer, Time.unscaledTime - 1f); renderer.RefreshNow();