This commit is contained in:
2026-10-10 07:52:12 +08:00
parent 3f30c471e1
commit 2bbabb70b4
10526 changed files with 400257 additions and 150564 deletions
+4 -2
View File
@@ -1439,6 +1439,8 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
/// <summary>炮台加载序号(防加载期间再次切换的竞态)</summary>
private int _turretLoadSeq = 0;
/// <summary>翅膀加载序号:必须与炮台分开!否则 LoadTurret→LoadWing 连调时翅膀会把炮台协程判为“已切走”而丢弃</summary>
private int _wingLoadSeq = 0;
/// <summary>当前按需加载的翅膀编号(换翅膀/卸下时释放引用)</summary>
private int _currentWingNumber = 0;
@@ -1633,7 +1635,7 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
ClearWing();
// ⭐ 散包按需加载(异步):缓存没有时按 PT{编号} 标签取,完成后实例化
StartCoroutine(LoadWingRoutine(turretNumber, ++_turretLoadSeq));
StartCoroutine(LoadWingRoutine(turretNumber, ++_wingLoadSeq));
}
/// <summary>翅膀异步按需加载协程(模式同炮台:seq 防竞态)</summary>
@@ -1644,7 +1646,7 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
var task = TurretResourcesData.AcquireTurretPrefabAsync(turretNumber);
while (!task.IsCompleted) yield return null;
if (seq != _turretLoadSeq)
if (seq != _wingLoadSeq)
{
TurretResourcesData.ReleaseTurretPrefab(turretNumber);
yield break;