任务失败, 该分支已经废弃
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user