修复
This commit is contained in:
@@ -21,7 +21,8 @@ namespace Ichni
|
||||
private readonly List<CrossTrackPoint> _activeCrossPoints = new List<CrossTrackPoint>(50);
|
||||
private readonly List<ObjectTracker> _activeObjectTrackers = new List<ObjectTracker>(50);
|
||||
private readonly List<ParticleTracker> _activeParticleTrackers = new List<ParticleTracker>(50);
|
||||
// 注意:TrackHeadPoint / TrackPercentPoint 在编辑器中无对应的逐帧更新逻辑,暂不加入
|
||||
private readonly List<TrackHeadPoint> _activeHeadPoints = new List<TrackHeadPoint>(50);
|
||||
private readonly List<TrackPercentPoint> _activePercentPoints = new List<TrackPercentPoint>(50);
|
||||
#endregion
|
||||
|
||||
#region [注册与注销] Registration
|
||||
@@ -48,6 +49,18 @@ namespace Ichni
|
||||
if (!_activeParticleTrackers.Contains(tracker)) _activeParticleTrackers.Add(tracker);
|
||||
}
|
||||
public void UnregisterParticleTracker(ParticleTracker tracker) => _activeParticleTrackers.Remove(tracker);
|
||||
|
||||
public void RegisterHeadPoint(TrackHeadPoint point)
|
||||
{
|
||||
if (!_activeHeadPoints.Contains(point)) _activeHeadPoints.Add(point);
|
||||
}
|
||||
public void UnregisterHeadPoint(TrackHeadPoint point) => _activeHeadPoints.Remove(point);
|
||||
|
||||
public void RegisterPercentPoint(TrackPercentPoint point)
|
||||
{
|
||||
if (!_activePercentPoints.Contains(point)) _activePercentPoints.Add(point);
|
||||
}
|
||||
public void UnregisterPercentPoint(TrackPercentPoint point) => _activePercentPoints.Remove(point);
|
||||
#endregion
|
||||
|
||||
#region [中央集权主循环] Manager-Driven Tick
|
||||
@@ -90,6 +103,22 @@ namespace Ichni
|
||||
if (!tracker.isActiveAndEnabled) continue;
|
||||
tracker.ManualTick(songTime);
|
||||
}
|
||||
|
||||
// 5. TrackHeadPoint:更新轨道头节点
|
||||
for (int i = 0; i < _activeHeadPoints.Count; i++)
|
||||
{
|
||||
var point = _activeHeadPoints[i];
|
||||
if (!point.isActiveAndEnabled) continue;
|
||||
point.ManualTick(songTime);
|
||||
}
|
||||
|
||||
// 6. TrackPercentPoint:更新轨道百分比节点
|
||||
for (int i = 0; i < _activePercentPoints.Count; i++)
|
||||
{
|
||||
var point = _activePercentPoints[i];
|
||||
if (!point.isActiveAndEnabled) continue;
|
||||
point.ManualTick(songTime);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user