任务失败, 该分支已经废弃

This commit is contained in:
2025-12-02 10:15:29 +08:00
parent cccf1f7577
commit b1a2d959c7
3 changed files with 141 additions and 10 deletions

View File

@@ -17,6 +17,9 @@ namespace Demo.Game
[Resources, SerializeField] public GlobalConfig MainConfig;
[Content] private RootObject MainObject;
[Content, SerializeField]
private bool _enableSchedulerUpdate = false; // 控制是否使用新的UpdateScheduler
public string RootSourcePath { get; private set; }
public Action<float, float> SetupSongDuration { get; private set; } = (_, _) => { };
@@ -264,7 +267,10 @@ namespace Demo.Game
{
SetSongCurrentTime(SongOffset);
}
MainObject.ScriptUpdate(SongOffset, Time.deltaTime, ScriptableObject.TickType.Reset);
if (_enableSchedulerUpdate)
MainObject.FlatOptimizationUpdate(SongOffset, Time.deltaTime, ScriptableObject.TickType.Reset);
else
MainObject.ScriptUpdate(SongOffset, Time.deltaTime, ScriptableObject.TickType.Reset);
}
public void Pause()
@@ -274,7 +280,10 @@ namespace Demo.Game
{
SetSongCurrentTime(CurrentTime);
}
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Pause);
if (_enableSchedulerUpdate)
MainObject.FlatOptimizationUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Pause);
else
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Pause);
}
public void Play()
@@ -285,12 +294,18 @@ namespace Demo.Game
SetupSongDuration(SongOffset, MainAudio.CurrentClip.length + SongOffset);
}
SetSongCurrentTime(CurrentTime);
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Start);
if (_enableSchedulerUpdate)
MainObject.FlatOptimizationUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Start);
else
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, ScriptableObject.TickType.Start);
}
public void ForceScriptUpdate(ScriptableObject.TickType type = ScriptableObject.TickType.Update)
{
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, type);
if (_enableSchedulerUpdate)
MainObject.FlatOptimizationUpdate(CurrentTime, Time.deltaTime, type);
else
MainObject.ScriptUpdate(CurrentTime, Time.deltaTime, type);
}
private bool IsScrollTimeline = false;
@@ -314,7 +329,16 @@ namespace Demo.Game
using (Profiler.BeginZone("GameController.ScriptUpdate"))
{
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
if (_enableSchedulerUpdate)
{
// 新方式调用FlatOptimizationUpdate会触发Scheduler
MainObject.FlatOptimizationUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
}
else
{
// 旧方式:递归调用
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
}
}
}
if (IsMain == false)
@@ -358,13 +382,24 @@ namespace Demo.Game
{
SetSongCurrentTime(CurrentTime);
}
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
if (_enableSchedulerUpdate)
MainObject.FlatOptimizationUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
else
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
}
else if (IsScrollTimeline == true)
{
IsScrollTimeline = false;
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Reset);
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
if (_enableSchedulerUpdate)
{
MainObject.FlatOptimizationUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Reset);
MainObject.FlatOptimizationUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
}
else
{
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Reset);
MainObject.ScriptUpdate(CurrentTime, deltaTime, ScriptableObject.TickType.Update);
}
}
}
}

View File

@@ -108,7 +108,20 @@ namespace Demo.Game
Foo();
}
base.UpdateTicks(currentTime, deltaTime, tickType);
// 调用调度器进行扁平化Update仅当有对象注册时
if (Scheduler != null && Scheduler.TotalRegistered > 0)
{
using (Profiler.BeginZone("RootObject.SchedulerUpdate"))
{
Scheduler.DoUpdate(currentTime, deltaTime, tickType);
}
}
else
{
// 旧方式调用base.UpdateTicks()(保持向后兼容)
base.UpdateTicks(currentTime, deltaTime, tickType);
}
}
}
}