diff --git a/Assets/Prefabs/FixSystemPrefabs/Clinic System.prefab b/Assets/Prefabs/FixSystemPrefabs/Clinic System.prefab
index ac5e2975b..c089cbca1 100644
--- a/Assets/Prefabs/FixSystemPrefabs/Clinic System.prefab
+++ b/Assets/Prefabs/FixSystemPrefabs/Clinic System.prefab
@@ -513,7 +513,7 @@ MonoBehaviour:
maxWidth: 1000
minWidth: -1
bubbleStyle: {fileID: 11400000, guid: eebbe16a999bced4899bcab04d967bce, type: 2}
- pivotType: 1
+ pivotType: 8
--- !u!1 &1855207041374924432
GameObject:
m_ObjectHideFlags: 0
@@ -1359,8 +1359,8 @@ MonoBehaviour:
m_ShadowVolumeIntensityEnabled: 0
m_ShadowVolumeIntensity: 0.75
m_LocalBounds:
- m_Center: {x: 0.034300327, y: -0.059900045, z: 0}
- m_Extent: {x: 14.1189995, y: 5.564, z: 0}
+ m_Center: {x: 0.032999992, y: -0.060499907, z: 0}
+ m_Extent: {x: 14.1184, y: 5.5629997, z: 0}
m_PointLightInnerAngle: 360
m_PointLightOuterAngle: 360
m_PointLightInnerRadius: 0
diff --git a/Assets/Prefabs/FixSystemPrefabs/Fix System Center.prefab b/Assets/Prefabs/FixSystemPrefabs/Fix System Center.prefab
index 62a2b4047..46a33416f 100644
--- a/Assets/Prefabs/FixSystemPrefabs/Fix System Center.prefab
+++ b/Assets/Prefabs/FixSystemPrefabs/Fix System Center.prefab
@@ -44,4 +44,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1de0c108139bfab468f734b0502b1ad3, type: 3}
m_Name:
m_EditorClassIdentifier:
- defaultState: 1
+ defaultState: 0
diff --git a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs
index d39b93f70..f1137d618 100644
--- a/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs
+++ b/Assets/Scripts/FixSystem/Memory/MemoryProcess.cs
@@ -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();
+ }
+
+ ///
+ /// 单条记忆播放结束后的复位:不调用 (避免再次锁条并触发打开 Timeline),
+ /// 仅禁用拖动;完整 仅在退出 时 执行。
+ ///
+ 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);
}
diff --git a/Assets/Scripts/FixSystem/Memory/MemorySlider.cs b/Assets/Scripts/FixSystem/Memory/MemorySlider.cs
index 9502a30c8..961892632 100644
--- a/Assets/Scripts/FixSystem/Memory/MemorySlider.cs
+++ b/Assets/Scripts/FixSystem/Memory/MemorySlider.cs
@@ -19,6 +19,8 @@ namespace AibisDream.FixSystem
private Slider slider;
private PlayableDirector playableDirector;
private Volume _volume;
+
+ /// 视觉 Lock/Unlock(Timeline);true = 收起未开,false = 已打开。
private bool isLocked;
public float TargetValue { get; set; }
@@ -41,11 +43,23 @@ namespace AibisDream.FixSystem
UpdateVolumeWeight(slider.value);
isLocked = true;
- slider.interactable = false;
+ SetInteractable(false);
}
+ /// 仅控制是否可拖动,与 / 无关。
public void SetInteractable(bool interactable) => slider.interactable = interactable;
+ ///
+ /// 新一轮搜索前复位滑条与 IsFound(不播 Timeline、不改变视觉锁状态)。
+ /// 需先设置好 。
+ ///
+ public void PrepareForSearch()
+ {
+ slider.value = defaultValue;
+ HandleValueChanged(slider.value);
+ }
+
+ /// 仅播放打开 Timeline(若有),不碰 interactable。
public void UnlockSlider(Action onComplete = null)
{
if (!isLocked)
@@ -56,12 +70,12 @@ namespace AibisDream.FixSystem
PlayTimeline(openAsset, () =>
{
- slider.interactable = true;
isLocked = false;
onComplete?.Invoke();
});
}
+ /// 仅播放收起 Timeline(若有),不碰 interactable。
public void LockSlider(Action onComplete = null)
{
if (isLocked)
@@ -75,7 +89,6 @@ namespace AibisDream.FixSystem
PlayTimeline(closeAsset, () =>
{
- slider.interactable = false;
isLocked = true;
onComplete?.Invoke();
});