Further updates to state machines
This commit is contained in:
@@ -221,7 +221,10 @@ namespace Core.Lifecycle
|
||||
{
|
||||
LogDebug($"Broadcasting ManagedAwake to {managedAwakeList.Count} components");
|
||||
|
||||
foreach (var component in managedAwakeList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null) continue;
|
||||
|
||||
@@ -337,7 +340,10 @@ namespace Core.Lifecycle
|
||||
ProcessBatchedSceneComponents();
|
||||
}
|
||||
|
||||
foreach (var component in sceneReadyList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(sceneReadyList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null) continue;
|
||||
|
||||
@@ -364,7 +370,10 @@ namespace Core.Lifecycle
|
||||
{
|
||||
var saveData = new Dictionary<string, string>();
|
||||
|
||||
foreach (var component in managedAwakeList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
@@ -396,7 +405,10 @@ namespace Core.Lifecycle
|
||||
{
|
||||
var saveData = new Dictionary<string, string>();
|
||||
|
||||
foreach (var component in managedAwakeList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
@@ -429,7 +441,12 @@ namespace Core.Lifecycle
|
||||
if (saveData == null) return;
|
||||
|
||||
int restoredCount = 0;
|
||||
foreach (var component in managedAwakeList)
|
||||
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
// (components might destroy themselves during restoration)
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
@@ -461,7 +478,11 @@ namespace Core.Lifecycle
|
||||
if (saveData == null) return;
|
||||
|
||||
int restoredCount = 0;
|
||||
foreach (var component in managedAwakeList)
|
||||
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
@@ -492,7 +513,10 @@ namespace Core.Lifecycle
|
||||
{
|
||||
LogDebug("Broadcasting GlobalLoadCompleted");
|
||||
|
||||
foreach (var component in managedAwakeList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
@@ -516,7 +540,10 @@ namespace Core.Lifecycle
|
||||
{
|
||||
LogDebug("Broadcasting GlobalSaveStarted");
|
||||
|
||||
foreach (var component in managedAwakeList)
|
||||
// Create a copy to avoid collection modification during iteration
|
||||
var componentsCopy = new List<ManagedBehaviour>(managedAwakeList);
|
||||
|
||||
foreach (var component in componentsCopy)
|
||||
{
|
||||
if (component == null || !component.AutoRegisterForSave) continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user