Add distinction between managed awake and managed start

This commit is contained in:
Michal Pikulski
2025-11-10 15:52:53 +01:00
parent c4d356886f
commit 7565b189b9
48 changed files with 990 additions and 1639 deletions

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
@@ -52,11 +52,9 @@ namespace Input
public override int ManagedAwakePriority => 25; // Input infrastructure
private new void Awake()
protected override void OnManagedAwake()
{
base.Awake(); // CRITICAL: Register with LifecycleManager!
// Set instance immediately so it's available before OnManagedAwake() is called
// Set instance immediately (early initialization)
_instance = this;
// Load verbosity settings early
@@ -89,10 +87,10 @@ namespace Input
SwitchInputOnSceneLoaded(SceneManager.GetActiveScene().name);
}
protected override void OnManagedAwake()
protected override void OnManagedStart()
{
// Subscribe to scene load events from SceneManagerService
// This must happen in ManagedAwake because SceneManagerService instance needs to be set first
// This must happen in ManagedStart because SceneManagerService instance needs to be set first
if (SceneManagerService.Instance != null)
{
SceneManagerService.Instance.SceneLoadCompleted += OnSceneLoadCompleted;