refactor(knob): 移除旋钮旋转光标交互逻辑

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-21 18:50:57 +08:00
co-authored by Cursor
parent c4ef30b151
commit 3d119dcd92
@@ -168,7 +168,6 @@ namespace AibisDream.MiniGame.HuoShan
private EventTriggerEx _eventTrigger;
private bool _useEventTrigger;
private bool _isPointerOver;
private Material _ringProgressMaterial;
@@ -234,8 +233,6 @@ namespace AibisDream.MiniGame.HuoShan
_eventTrigger.Register(EventTriggerType.PointerDown, OnEventPointerDown);
_eventTrigger.Register(EventTriggerType.PointerUp, OnEventPointerUp);
_eventTrigger.Register(EventTriggerType.Drag, OnEventDrag);
_eventTrigger.Register(EventTriggerType.PointerEnter, OnEventPointerEnter);
_eventTrigger.Register(EventTriggerType.PointerExit, OnEventPointerExit);
}
EnsureKnobVisual();
@@ -446,9 +443,7 @@ namespace AibisDream.MiniGame.HuoShan
{
EventTriggerType.PointerDown,
EventTriggerType.PointerUp,
EventTriggerType.Drag,
EventTriggerType.PointerEnter,
EventTriggerType.PointerExit
EventTriggerType.Drag
};
foreach (var t in needed)
{
@@ -498,34 +493,6 @@ namespace AibisDream.MiniGame.HuoShan
ContinueDrag(pointerData.position);
}
private void OnEventPointerEnter(BaseEventData eventData)
{
_isPointerOver = true;
UpdateRotationCursor();
}
private void OnEventPointerExit(BaseEventData eventData)
{
_isPointerOver = false;
UpdateRotationCursor();
}
private void UpdateRotationCursor()
{
if ((!_isPointerOver && !_isDragging) || !IsAvailable)
{
ClearRotationCursor();
return;
}
CursorManager.Instance?.SetInteractionCursor(this, CursorStateEnum.Rotating);
}
private void ClearRotationCursor()
{
CursorManager.Instance?.ClearInteractionCursor(this);
}
private void HandleMouseInputFallback()
{
if (Input.GetMouseButtonDown(0))
@@ -594,7 +561,6 @@ namespace AibisDream.MiniGame.HuoShan
SetInteractionHighlightVisible(false);
_isDragging = true;
UpdateRotationCursor();
_prevMouseAngle = GetMouseAngleDeg(Input.mousePosition);
ClearIdleState();
onPowerAdjustmentStart?.Invoke();
@@ -624,7 +590,6 @@ namespace AibisDream.MiniGame.HuoShan
{
if (!_isDragging) return;
_isDragging = false;
UpdateRotationCursor();
if (_knobAngle > 10f)
StartIdleCountdown();
@@ -841,7 +806,6 @@ namespace AibisDream.MiniGame.HuoShan
_failCount++;
YarnVariableStorage.Instance?.SetValue("$knobFailCount", (float)_failCount);
_hasFailed = true;
ClearRotationCursor();
Debug.Log($"[KnobController] Failure #{_failCount} at {_currentPower:F1}%, waiting for snapback...");
// 不立即触发 UI/事件,等旋钮回弹完成后再触发
@@ -991,7 +955,6 @@ namespace AibisDream.MiniGame.HuoShan
UpdateFromKnobAngle();
HideInfoPanel();
UpdateRotationCursor();
Debug.Log("[KnobController] Reset");
}
@@ -1002,7 +965,6 @@ namespace AibisDream.MiniGame.HuoShan
public void Lock()
{
_isLocked = true;
ClearRotationCursor();
Debug.Log("[KnobController] Locked");
}
@@ -1012,7 +974,6 @@ namespace AibisDream.MiniGame.HuoShan
public void Unlock()
{
_isLocked = false;
UpdateRotationCursor();
}
public void SetMinAcceptablePower(float minPower)
@@ -1023,19 +984,11 @@ namespace AibisDream.MiniGame.HuoShan
public void ForceSuccess()
{
_hasSucceeded = true;
ClearRotationCursor();
onPowerAdjustmentSuccess?.Invoke(_currentPower);
}
private void OnDisable()
{
_isPointerOver = false;
ClearRotationCursor();
}
private void OnDestroy()
{
ClearRotationCursor();
if (_ringProgressMaterial == null) return;
if (Application.isPlaying)