feat: 梦境门、热力图、身体模块与终端 UI 全流程逻辑

Made-with: Cursor
This commit is contained in:
2026-03-28 19:37:52 +08:00
parent 215725d2a0
commit fc03cfdd4a
5 changed files with 86 additions and 20 deletions
@@ -40,7 +40,9 @@ namespace AibisDream
[SerializeField] private float postMorphBootDelay = 0.12f;
[SerializeField] private float referenceSnapMorphProgress = 0.08f;
[SerializeField] private Vector2 referenceSnapPadding = new(0.18f, 0.18f);
[Tooltip("终端变形时 sceneBlackOverlay 淡入目标透明度(背景压暗)")]
[SerializeField] private float blackoutAlpha = 0.92f;
[Tooltip("黑场淡入时长(与终端 morph 并行)")]
[SerializeField] private float blackoutFadeInDuration = 0.08f;
[SerializeField] private float blackoutFadeOutDuration = 0.12f;
@@ -217,7 +219,13 @@ namespace AibisDream
flashOverlay.SetAlpha(0f);
if (sceneBlackOverlay != null)
{
sceneBlackOverlay.gameObject.SetActive(true);
sceneBlackOverlay.SetAlpha(0f);
}
if (backgroundCutDelay > 0f)
yield return new WaitForSeconds(backgroundCutDelay);
if (preMorphHoldDuration > 0f)
yield return new WaitForSeconds(preMorphHoldDuration);
@@ -225,11 +233,16 @@ namespace AibisDream
if (terminalUI != null)
{
float morph = 0f;
yield return DOTween.To(() => morph, v =>
var morphTween = DOTween.To(() => morph, v =>
{
morph = v;
terminalUI.MorphProgress = v;
}, 1f, 0.82f).SetEase(morphEase).WaitForCompletion();
}, 1f, 0.82f).SetEase(morphEase);
if (sceneBlackOverlay != null)
sceneBlackOverlay.DOFade(blackoutAlpha, Mathf.Max(0.01f, blackoutFadeInDuration));
yield return morphTween.WaitForCompletion();
}
ResetDoorShellScale();