把释放log的序列拆成两部分
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -2942,7 +2942,7 @@ MonoBehaviour:
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 14073792904200192
|
||||
m_Localized: "me: \u91CA\u653Elog"
|
||||
m_Localized: "me: \u5BFB\u627Elog"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 14073793021640704
|
||||
@@ -2950,7 +2950,7 @@ MonoBehaviour:
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 14128499794280448
|
||||
m_Localized: "\u8FDB\u5165\u9500\u552E\u6A21\u5F0F"
|
||||
m_Localized: "me: \u91CA\u653Elog"
|
||||
m_Metadata:
|
||||
m_Items: []
|
||||
- m_Id: 14128499802669056
|
||||
|
||||
@@ -106,23 +106,24 @@ colorID: 1
|
||||
---
|
||||
//每次进入维修界面就自动保存
|
||||
<<fade_out 1>>
|
||||
// <<switch_fix_system_to BodyModule Head>>
|
||||
// <<switch_fix_system_to Expression>>
|
||||
// me: 寻找log
|
||||
// <<start_expression "哈哈|嘿嘿|呵呵" "我很害怕" "LOG1梳理完成">>
|
||||
// <<wait 1>>
|
||||
<<switch_fix_system_to BodyModule Head>>
|
||||
<<switch_fix_system_to Expression>>
|
||||
me: 寻找log
|
||||
<<start_expression "哈哈|嘿嘿|呵呵" "我很害怕" "LOG1梳理完成">>
|
||||
<<wait 1>>
|
||||
me: 释放log
|
||||
->进入销售模式
|
||||
<<switch_fix_system_to Sales>>
|
||||
->进入步进模式
|
||||
<<enter_step_mode>>
|
||||
<<spin_crank>>
|
||||
<<switch_emotion_wave_config empty>>
|
||||
<<show_emotion_wave 1>>
|
||||
<<enter_processor_mode>>
|
||||
me: 下一步
|
||||
<<open_knob_lid>>
|
||||
<<unlock_knob>>
|
||||
|
||||
// ->进入销售模式
|
||||
// <<switch_fix_system_to Sales>>
|
||||
// ->进入步进模式
|
||||
// <<enter_step_mode>>
|
||||
// <<spin_crank>>
|
||||
// <<switch_emotion_wave_config empty>>
|
||||
// <<show_emotion_wave 1>>
|
||||
// <<enter_processor_mode>>
|
||||
// me: 下一步
|
||||
// <<open_knob_lid>>
|
||||
// <<unlock_knob>>
|
||||
// me: 下一步
|
||||
// <<switch_emotion_wave_config "normal" 0>>
|
||||
// me: 下一步
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
title: Stage6
|
||||
tags: Stage 入口 释放RAM
|
||||
colorID: 2
|
||||
@@ -78,7 +78,9 @@ hs: 你现在不是路师了,你是*凶柿*了。*凶*柿你知道么。西红
|
||||
me: 火山! #line:034a446
|
||||
hs: 好啦好啦,我不闹了。 #line:0607264
|
||||
hs: 我…就是个…笑话。 #line:0fbba7e
|
||||
<<resolve_expression_focus>>
|
||||
<<expression_sprite_fade_out 1>>
|
||||
|
||||
me: 你不是,火山。 #line:07ddaef2
|
||||
<<wait 1>>
|
||||
hs: 我明白我是。 #line:0e82896
|
||||
@@ -156,7 +158,7 @@ hs: 不…要… #line:060b1e6
|
||||
<<wait 1>>
|
||||
hs: 我不行。 #line:0c42fcc
|
||||
me: 说呀! #line:09d7762
|
||||
hs: …… #line:0a5286d
|
||||
hs: …… #line:0a5286d
|
||||
hs: 我… #line:02a5070
|
||||
hs: 我让它失望了!!! #line:03f5b98
|
||||
<<expression_sprite_fade_out 1>>
|
||||
|
||||
@@ -121,6 +121,27 @@ namespace AibisDream
|
||||
yield return particleManager.WaitUntilExpressionFlowReady();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从聚焦保持态触发稳定化(概率递增 → 文字锁定 → 排列)
|
||||
/// </summary>
|
||||
public void ResolveFocusSequence()
|
||||
{
|
||||
if (particleManager != null)
|
||||
{
|
||||
particleManager.ResolveFocusSequence();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 触发聚焦稳定化并等待全流程完成
|
||||
/// </summary>
|
||||
public IEnumerator ResolveFocusAndWait()
|
||||
{
|
||||
if (particleManager == null) yield break;
|
||||
particleManager.ResolveFocusSequence();
|
||||
yield return particleManager.WaitUntilFocusFinished();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 关闭表达系统
|
||||
/// </summary>
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace AibisDream.MiniGame.Language
|
||||
{
|
||||
None, // 未完成
|
||||
Completed, // 已完成但尚未进入聚焦流程
|
||||
FocusHolding, // 聚焦位置保持态(文字飘动/变换,等待外部命令触发下一步)
|
||||
Focusing, // 正在聚焦放大并收敛
|
||||
Finished // 全流程完成
|
||||
}
|
||||
@@ -674,7 +675,11 @@ namespace AibisDream.MiniGame.Language
|
||||
}
|
||||
}
|
||||
|
||||
if (completionPhase == CompletionPhase.Focusing)
|
||||
if (completionPhase == CompletionPhase.FocusHolding)
|
||||
{
|
||||
UpdateFocusHolding();
|
||||
}
|
||||
else if (completionPhase == CompletionPhase.Focusing)
|
||||
{
|
||||
UpdateFocusSequence();
|
||||
}
|
||||
@@ -1026,8 +1031,7 @@ namespace AibisDream.MiniGame.Language
|
||||
completedTweens++;
|
||||
if (completedTweens >= tweenTargetCount)
|
||||
{
|
||||
focusTweensCompleted = true;
|
||||
focusTimer = 0f;
|
||||
EnterFocusHolding();
|
||||
}
|
||||
});
|
||||
particle.transform.DOScale(Vector3.one * focusZoomScale, focusMoveDuration).SetEase(Ease.InOutQuad);
|
||||
@@ -1042,8 +1046,7 @@ namespace AibisDream.MiniGame.Language
|
||||
|
||||
if (tweenTargetCount == 0)
|
||||
{
|
||||
focusTweensCompleted = true;
|
||||
focusTimer = 0f;
|
||||
EnterFocusHolding();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1097,6 +1100,31 @@ namespace AibisDream.MiniGame.Language
|
||||
return visual;
|
||||
}
|
||||
|
||||
private void EnterFocusHolding()
|
||||
{
|
||||
completionPhase = CompletionPhase.FocusHolding;
|
||||
focusTimer = 0f;
|
||||
|
||||
if (!string.IsNullOrEmpty(completionDialogNode))
|
||||
{
|
||||
DialogController.Instance?.StartDialogNode(completionDialogNode);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFocusHolding()
|
||||
{
|
||||
focusTimer += Time.deltaTime;
|
||||
|
||||
foreach (var visual in focusVisuals.Values)
|
||||
{
|
||||
if (visual == null || visual.particle == null)
|
||||
continue;
|
||||
|
||||
Vector3 shuffleOffset = CalculateShuffleOffset(visual, 0f, focusTimer);
|
||||
visual.particle.transform.position = visual.focusPosition + shuffleOffset;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFocusSequence()
|
||||
{
|
||||
if (!focusTweensCompleted)
|
||||
@@ -1152,6 +1180,30 @@ namespace AibisDream.MiniGame.Language
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从 FocusHolding 进入稳定化阶段(概率递增、文字锁定、排列到最终位置)
|
||||
/// </summary>
|
||||
public void ResolveFocusSequence()
|
||||
{
|
||||
if (completionPhase != CompletionPhase.FocusHolding)
|
||||
return;
|
||||
|
||||
completionPhase = CompletionPhase.Focusing;
|
||||
focusTweensCompleted = true;
|
||||
focusTimer = 0f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 等待聚焦流程全部完成(稳定化 → Finished)
|
||||
/// </summary>
|
||||
public IEnumerator WaitUntilFocusFinished()
|
||||
{
|
||||
while (completionPhase != CompletionPhase.Finished && completionPhase != CompletionPhase.None)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void CompleteFocusSequence()
|
||||
{
|
||||
foreach (var visual in focusVisuals.Values)
|
||||
@@ -1191,12 +1243,6 @@ namespace AibisDream.MiniGame.Language
|
||||
FadeOutUIElement(focusSequenceButton.gameObject, focusFadeDuration);
|
||||
}
|
||||
FadeOutSpriteRenderer(releaseLogSpriteRenderer, focusFadeDuration);
|
||||
|
||||
// 触发完成对话节点
|
||||
if (!string.IsNullOrEmpty(completionDialogNode))
|
||||
{
|
||||
DialogController.Instance?.StartDialogNode(completionDialogNode);
|
||||
}
|
||||
}
|
||||
|
||||
private Vector3 GetDynamicArrangementTarget(TargetFocusVisual visual, float arrangementProgress, float localTime)
|
||||
@@ -1522,6 +1568,17 @@ namespace AibisDream.MiniGame.Language
|
||||
BeginFocusSequence();
|
||||
}
|
||||
|
||||
while (completionPhase == CompletionPhase.Focusing)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
|
||||
if (completionPhase == CompletionPhase.FocusHolding)
|
||||
{
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
ResolveFocusSequence();
|
||||
}
|
||||
|
||||
while (completionPhase != CompletionPhase.Finished)
|
||||
{
|
||||
yield return null;
|
||||
|
||||
@@ -79,6 +79,21 @@ namespace AibisDream.MiniGame.Language
|
||||
ExpressionManager.ResetSystem(playEntranceEffect);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 触发聚焦稳定化(从文字飘动保持态 → 概率递增 → 文字锁定 → 排列),等待全流程完成后返回
|
||||
/// <<resolve_expression_focus>>
|
||||
/// </summary>
|
||||
[YarnCommand("resolve_expression_focus")]
|
||||
public static IEnumerator ResolveExpressionFocus()
|
||||
{
|
||||
if (ExpressionManager == null)
|
||||
{
|
||||
UnityEngine.Debug.LogError("ExpressionManager 未找到!");
|
||||
yield break;
|
||||
}
|
||||
yield return ExpressionManager.StartCoroutine(ExpressionManager.ResolveFocusAndWait());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重新启动表达系统(会重置并使用新配置,相当于 close + open + start)
|
||||
/// <<restart_expression "我好怕|怎么办|不行" "我能做到" "ExpressionCompleted">>
|
||||
|
||||
Reference in New Issue
Block a user