@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user