1
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user