问题修改

This commit is contained in:
2025-12-23 20:28:17 +08:00
parent d27350121b
commit 522a49bdc6
22 changed files with 1263 additions and 961 deletions
@@ -88,16 +88,16 @@ namespace AibisDream.FixSystem
// 空格延长一点避免报错
if (string.IsNullOrWhiteSpace(token.lineInfo.lineText))
{
token.lineInfo.lineText = " ";
token.lineInfo.lineText = " ";
}
// 显示标题
ShowTitle(token.lineInfo.character.GetActorName());
// 显示文本
TypewriterCore textItemTypewriter = AddText(token.lineInfo.lineText);
textItemTypewriter.SetTypewriterSpeed(GetTextSpeedValue());
textItemTypewriter.onTextShowed.AddListener(() => OnTextShown(token, textItemTypewriter));
TypewriterCore textItemTypewriter = AddText(token);
token.TextStart();
// 强制更新布局
LayoutRebuilder.ForceRebuildLayoutImmediate(textRoot);
}
@@ -114,13 +114,13 @@ namespace AibisDream.FixSystem
syncToken.TextShown();
}
private TypewriterByCharacter AddText(string newLine)
private TypewriterByCharacter AddText(LineSyncToken token)
{
// 生成新文本组件
var textItem = Instantiate(_textItemPrefab, textRoot);
var textItemTypewriter = textItem.GetComponent<TypewriterByCharacter>();
// 估算文本高度
var newLineNum = EstimateLineNum(newLine);
var newLineNum = EstimateLineNum(token.lineInfo.lineText);
var oldLineNum = CalcTotalLineNum();
if (newLineNum + oldLineNum > maxLineNum)
{
@@ -128,8 +128,10 @@ namespace AibisDream.FixSystem
}
_lineQueue.Enqueue(textItemTypewriter);
// 播放文本
textItemTypewriter.ShowText(newLine);
textItemTypewriter.SetTypewriterSpeed(GetTextSpeedValue());
textItemTypewriter.onTextShowed.AddListener(() => OnTextShown(token, textItemTypewriter));
textItemTypewriter.ShowText(token.lineInfo.lineText);
return textItemTypewriter;
}
+4 -3
View File
@@ -42,8 +42,6 @@ namespace AibisDream
// 场景So事件注册
_currentTalkSceneSo = new BindProperty<TalkSceneSO>();
_currentTalkSceneSo.Register(item => _data.curSceneSoName = item.name);
// 事件广播
EnumEventSystem.Global.Send(GameLoopEnum.AppStart);
// 加载SO
Addressables.LoadAssetsAsync<TalkSceneSO>("SceneSO", null).Completed += LoadTalkSo;
@@ -62,10 +60,12 @@ namespace AibisDream
.Callback(() => UIManager.Instance.GetPanel<PlayToolPanel>().FadeInSync(0))
.Coroutine(() => SceneLoader.Instance.LoadSceneAsync("ClinicOut"))
.Callback(() => UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutSync())
.Callback(() => EnumEventSystem.Global.Send(GameLoopEnum.AppStart))
.Start(this);
}
#else
SceneLoader.Instance.LoadScene("ClinicOut");
// 事件广播
SceneLoader.Instance.LoadScene("ClinicOut", () => EnumEventSystem.Global.Send(GameLoopEnum.AppStart));
runMode = RunMode.Product;
#endif
}
@@ -164,6 +164,7 @@ namespace AibisDream
private IEnumerator RestartCoroutine()
{
UIManager.Instance.GetPanel<PlayToolPanel>().FadeInSync(0.1f);
UIManager.Instance.HidePanel<MainPanel>();
// 清理所有系统注册
if (FixSystemCenter.SystemDic != null)
+5 -3
View File
@@ -32,9 +32,9 @@ namespace AibisDream
/// 同步场景转换
/// </summary>
/// <param name="targetScene">目标场景</param>
public void LoadScene(string targetScene)
public void LoadScene(string targetScene, Action onComplete = null)
{
StartCoroutine(LoadSceneAsync(targetScene));
StartCoroutine(LoadSceneAsync(targetScene, onComplete));
}
/// <summary>
@@ -42,7 +42,7 @@ namespace AibisDream
/// </summary>
/// <param name="targetScene">目标场景</param>
/// <returns></returns>
public IEnumerator LoadSceneAsync(string targetScene)
public IEnumerator LoadSceneAsync(string targetScene, Action onComplete = null)
{
if (_isLoading)
{
@@ -79,6 +79,8 @@ namespace AibisDream
UIManager.Instance.GetPanel<InfoPanel>().HideLoading();
_isLoading = false;
onComplete?.Invoke();
}
}