fix(fix-system): 修复记忆修复滑条交互与 Timeline 状态冲突
This commit is contained in:
@@ -106,8 +106,16 @@ namespace AibisDream.FixSystem
|
||||
// 离开视图时的逻辑
|
||||
Debug.Log("MemoryView exited.");
|
||||
|
||||
if (frequencySlider != null) frequencySlider.LockSlider();
|
||||
if (claritySlider != null) claritySlider.LockSlider();
|
||||
if (frequencySlider != null)
|
||||
{
|
||||
frequencySlider.SetInteractable(false);
|
||||
frequencySlider.LockSlider();
|
||||
}
|
||||
if (claritySlider != null)
|
||||
{
|
||||
claritySlider.SetInteractable(false);
|
||||
claritySlider.LockSlider();
|
||||
}
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
@@ -202,6 +210,33 @@ namespace AibisDream.FixSystem
|
||||
if (claritySlider != null)
|
||||
claritySlider.Init(memoryClarityVolume);
|
||||
|
||||
ResetPresentationState();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单条记忆播放结束后的复位:不调用 <see cref="MemorySlider.Init"/>(避免再次锁条并触发打开 Timeline),
|
||||
/// 仅禁用拖动;完整 <see cref="MemorySlider.LockSlider"/> 仅在退出 <see cref="MemoryState"/> 时 <see cref="OnExit"/> 执行。
|
||||
/// </summary>
|
||||
private void ResetAfterMemoryFinished()
|
||||
{
|
||||
isProcessing = false;
|
||||
|
||||
if (isPlayingFaderSound)
|
||||
{
|
||||
AudioManager.Instance.StopSfx("event:/ActionFB/mem_fader");
|
||||
isPlayingFaderSound = false;
|
||||
}
|
||||
|
||||
if (frequencySlider != null)
|
||||
frequencySlider.SetInteractable(false);
|
||||
if (claritySlider != null)
|
||||
claritySlider.SetInteractable(false);
|
||||
|
||||
ResetPresentationState();
|
||||
}
|
||||
|
||||
private void ResetPresentationState()
|
||||
{
|
||||
if (fadeMaterial != null)
|
||||
fadeMaterial.SetFloat("_DirectionalDistortionFade", FadeMaterialStartValue);
|
||||
memoryFinishedSpriteRenderer.color = Color.black;
|
||||
@@ -221,7 +256,7 @@ namespace AibisDream.FixSystem
|
||||
|
||||
PunchTapeManager.Instance.OpenFavoritesPanel();
|
||||
|
||||
Init();
|
||||
ResetAfterMemoryFinished();
|
||||
EnsurePunchTapeSlotReference();
|
||||
if (punchTapeSlot != null && punchTapeSlot.punchTape != null)
|
||||
{
|
||||
@@ -332,11 +367,15 @@ namespace AibisDream.FixSystem
|
||||
memoryFinishedSpriteRenderer.color = Color.white;
|
||||
memoryProcessVolume.weight = 0;
|
||||
isProcessing = true;
|
||||
frequencySlider.PrepareForSearch();
|
||||
claritySlider.PrepareForSearch();
|
||||
bool freqUnlocked = false;
|
||||
bool clarityUnlocked = false;
|
||||
frequencySlider.UnlockSlider(() => freqUnlocked = true);
|
||||
claritySlider.UnlockSlider(() => clarityUnlocked = true);
|
||||
yield return new WaitUntil(() => freqUnlocked && clarityUnlocked);
|
||||
frequencySlider.SetInteractable(true);
|
||||
claritySlider.SetInteractable(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user