问题修改
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user