using Core; using UnityEngine; using Core.Lifecycle; [System.Serializable] public class SoundBirdSaveData { public bool canFly; } public class soundBird_CanFly : ManagedBehaviour { public bool canFly = true; // Enable save/load participation public override bool AutoRegisterForSave => true; public void birdCanHear(bool canhear) { canFly = canhear; } #region Save/Load Implementation internal override string OnSceneSaveRequested() { var saveData = new SoundBirdSaveData { canFly = this.canFly }; return JsonUtility.ToJson(saveData); } internal override void OnSceneRestoreRequested(string serializedData) { if (string.IsNullOrEmpty(serializedData)) { Logging.Warning($"[soundBird_CanFly] No save data to restore for {gameObject.name}"); return; } var saveData = JsonUtility.FromJson(serializedData); if (saveData != null) { canFly = saveData.canFly; Logging.Debug($"[soundBird_CanFly] Restored canFly state: {canFly}"); } } #endregion }