refactor(knob): 移除旋钮旋转光标交互逻辑
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user