Refactor: dedupe input reads, material-property guards, button hooks
Extract byte-identical duplicated code into shared helpers (behaviour-neutral): - New InputUtil.cs: single source for mouse-delta/scroll/cursor-lock, modifier and mouse-button reads, previously copied verbatim across camera controllers, MeshPainter, FirstPersonMode and PlayerCharacterController. - GetMatFloat/SetMatFloat replace the 12x material-instance + HasProperty guard pattern for the camo/height float properties. - Route two inline button hooks through the existing Hook() helper. Bespoke variants deliberately kept local (FreeCam SprintHeld = LeftShift only, MeshPainter.TryGetMouse with out-params). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
626dcc1bdf
commit
882d30797e
11 files changed
+158
-222
No files matched your search
@@ -1,8 +1,5 @@
|
||||
using UnityEngine;
|
||||
using Unity.Netcode;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// First-person mode. The player keeps walking (WASD, camera-relative) but the camera moves to the
|
||||
@@ -64,7 +61,7 @@ public class FirstPersonMode : GameMode
|
||||
{
|
||||
if (!CanShoot()) return;
|
||||
if (Time.time < _nextShootTime) return;
|
||||
if (!ClickedThisFrame()) return;
|
||||
if (!InputUtil.LeftClickedThisFrame()) return;
|
||||
|
||||
_nextShootTime = Time.time + Mathf.Max(0f, MatchManager.Instance.ShootCooldown);
|
||||
TryShoot();
|
||||
@@ -107,15 +104,6 @@ public class FirstPersonMode : GameMode
|
||||
}
|
||||
}
|
||||
|
||||
private static bool ClickedThisFrame()
|
||||
{
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
return Mouse.current != null && Mouse.current.leftButton.wasPressedThisFrame;
|
||||
#else
|
||||
return Input.GetMouseButtonDown(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
private sealed class RaycastDistanceComparer : System.Collections.Generic.IComparer<RaycastHit>
|
||||
{
|
||||
public static readonly RaycastDistanceComparer Instance = new RaycastDistanceComparer();
|
||||
|
||||
Reference in new issue
Block a user