/// <summary> /// Initialize the GameFoundation . It need a persistence object to be passed as argument to set the default persistence layer /// If the initialization fails, onInitializeFailed will be called with an exception. /// </summary> /// <param name="dataPersistence">The persistence layer of the Game Foundation. Required and cached for future execution</param> /// <param name="onInitializeCompleted">Called when the initialization process is completed with success</param> /// <param name="onInitializeFailed">Called when the initialization process failed</param> public static void InitializeAppSettings( IDataPersistence dataPersistence = null, IDataSerializationAdapter dataFormatter = null, Action onInitializeCompleted = null, Action onInitializeFailed = null) { if (m_AppSettingsInitializationStatus == InitializationStatus.Initializing || m_AppSettingsInitializationStatus == InitializationStatus.Initialized) { Debug.LogWarning("AppSettings is already initialized and cannot be initialized again."); onInitializeFailed?.Invoke(); return; } m_AppSettingsInitializationStatus = InitializationStatus.Initializing; if (dataPersistence != null && dataFormatter != null) { LoadAppSettingsData(dataPersistence, (data) => { InitializeAppSettings(data, dataFormatter, onInitializeCompleted, onInitializeFailed); }, () => { InitializeAppSettings(null as ISerializableData, dataFormatter, onInitializeCompleted, onInitializeFailed); }); } else { InitializeAppSettings(null as ISerializableData, dataFormatter, onInitializeCompleted, onInitializeFailed); } }
static void InitializeAppSettings(ISerializableData data, IDataSerializationAdapter dataFormatter, Action onInitializeCompleted = null, Action onInitializeFailed = null) { bool isInitialized = true; try { AppSettings.Database.DataFormatter = dataFormatter; AppSettings.Database.Initialize(data); isInitialized = true; } catch { isInitialized = false; } if (isInitialized) { m_AppSettingsInitializationStatus = InitializationStatus.Initialized; onInitializeCompleted?.Invoke(); } else { UninitializeAppSettings(); Debug.LogWarning("AppSettings can't be initialized."); m_AppSettingsInitializationStatus = InitializationStatus.Failed; onInitializeFailed?.Invoke(); } }
protected override IStorageHelper CreateStorageHelperForRemote(IDataSerializationAdapter serializationAdapter) { IStorageHelper storageHelper = null; if (!m_remoteStorageInOneEntry) { storageHelper = serializationAdapter.GetSerializableData() as IStorageHelper; if (storageHelper != null) { storageHelper.StorageHelperType = StorageHelperType.PlayFab; } } return(storageHelper); }