性能优化:MovableTrack

Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-07-18 12:32:51 +08:00
parent df4d35942a
commit d331f4d9af
8 changed files with 119 additions and 14 deletions

View File

@@ -24,6 +24,7 @@ namespace Ichni.RhythmGame
public bool zWrite;
public Vector2 uvScale;
public Vector2 uvOffset;
private bool requiresMeshRebuild;
#endregion
#region [] Initialization & Defense
@@ -72,17 +73,44 @@ namespace Ichni.RhythmGame
{
if (meshGenerator == null) return;
bool colorChanged = false;
if (meshGenerator.color != color)
{
meshGenerator.color = color;
colorChanged = true;
}
if (forceImmediateRebuild && track.trackTimeSubmodule is not TrackTimeSubmoduleMovable)
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable)
{
if (colorChanged || forceImmediateRebuild)
{
RequestMeshRebuild();
}
return;
}
if (forceImmediateRebuild)
{
meshGenerator.RebuildImmediate();
}
}
public void RequestMeshRebuild()
{
requiresMeshRebuild = true;
}
public bool ConsumeMeshRebuildRequest()
{
if (!requiresMeshRebuild)
{
return false;
}
requiresMeshRebuild = false;
return true;
}
protected void SetMesh()
{
if (track.trackTimeSubmodule is TrackTimeSubmoduleMovable trackTimeSubmoduleMovable)