public void OnPreprocessBuild(BuildReport report) { // Always remember to cleanup preloaded assets after build to make sure we don't // dirty later builds with assets that may not be needed or are out of date. CleanOldSettings(); PlayerIdentityGeneralSettingsPerBuildTarget buildTargetSettings = null; EditorBuildSettings.TryGetConfigObject(PlayerIdentityGeneralSettings.k_SettingsKey, out buildTargetSettings); if (buildTargetSettings == null) { return; } PlayerIdentityGeneralSettings settings = buildTargetSettings.SettingsForBuildTarget(report.summary.platformGroup); if (settings == null) { return; } UnityEngine.Object[] preloadedAssets = PlayerSettings.GetPreloadedAssets(); if (!preloadedAssets.Contains(settings)) { var assets = preloadedAssets.ToList(); assets.Add(settings); PlayerSettings.SetPreloadedAssets(assets.ToArray()); } }
public static bool UpgradeSettingsToPerBuildTarget(string path) { var generalSettings = GetPlayerIdentityGeneralSettingsInstance(path); if (generalSettings == null) { return(false); } if (!AssetDatabase.IsMainAsset(generalSettings)) { return(false); } PlayerIdentityGeneralSettings newSettings = ScriptableObject.CreateInstance <PlayerIdentityGeneralSettings>() as PlayerIdentityGeneralSettings; newSettings.Manager = generalSettings.Manager; generalSettings = null; AssetDatabase.DeleteAsset(path); PlayerIdentityGeneralSettingsPerBuildTarget buildTargetSettings = ScriptableObject.CreateInstance <PlayerIdentityGeneralSettingsPerBuildTarget>() as PlayerIdentityGeneralSettingsPerBuildTarget; AssetDatabase.CreateAsset(buildTargetSettings, path); buildTargetSettings.SetSettingsForBuildTarget(EditorUserBuildSettings.selectedBuildTargetGroup, newSettings); AssetDatabase.AddObjectToAsset(newSettings, path); AssetDatabase.SaveAssets(); Debug.LogWarningFormat("PlayerIdentity General Settings have been upgraded to be per-Build Target Group. Original settings were moved to Build Target Group {0}.", EditorUserBuildSettings.selectedBuildTargetGroup); return(true); }
private static PlayerIdentityGeneralSettings GetPlayerIdentityGeneralSettingsInstance(string pathToSettings) { PlayerIdentityGeneralSettings ret = null; if (pathToSettings.Length > 0) { ret = AssetDatabase.LoadAssetAtPath(pathToSettings, typeof(PlayerIdentityGeneralSettings)) as PlayerIdentityGeneralSettings; } return(ret); }
private static int GetSelectedBackendLoaderIndex(PlayerIdentityGeneralSettings settings, List <LoaderInfo> backendLoaders) { if (settings.Manager == null || settings.Manager.backendLoader == null) { return(0); } var loaderName = settings.Manager.backendLoader.name; int index = backendLoaders.FindIndex(x => x.instance != null && x.instance.name == loaderName); return(index < 0 ? 0 : index); }
static void PlayModeStateChanged(PlayModeStateChange state) { PlayerIdentityGeneralSettingsPerBuildTarget buildTargetSettings = null; EditorBuildSettings.TryGetConfigObject(PlayerIdentityGeneralSettings.k_SettingsKey, out buildTargetSettings); if (buildTargetSettings == null) { return; } PlayerIdentityGeneralSettings instance = buildTargetSettings.SettingsForBuildTarget(BuildTargetGroup.Standalone); if (instance == null || !instance.InitManagerOnStart) { return; } instance.InternalPlayModeStateChanged(state); }
public PlayerIdentityGeneralSettings SettingsForBuildTarget(BuildTargetGroup targetGroup) { PlayerIdentityGeneralSettings ret = null; m_Settings.TryGetValue(targetGroup, out ret); if (ret == null) { ret = CreateInstance <PlayerIdentityGeneralSettings>(); SetSettingsForBuildTarget(targetGroup, ret); AssetDatabase.AddObjectToAsset(ret, AssetDatabase.GetAssetOrScenePath(this)); if (ret.Manager == null) { var ms = CreateInstance <PlayerIdentityManagerSettings>(); AssetDatabase.AddObjectToAsset(ms, AssetDatabase.GetAssetOrScenePath(ret)); ret.Manager = ms; List <LoaderInfo> m_AllBackendLoaderInfo = new List <LoaderInfo>(); List <LoaderInfo> m_AllProviderLoaderInfo = new List <LoaderInfo>(); PlayerIdentitySettingsManager.PopulateAllKnownLoaderInfos(m_AllBackendLoaderInfo, m_AllProviderLoaderInfo); LoaderInfo defaultbackloader = null; if (m_AllBackendLoaderInfo.Count != 0) { defaultbackloader = m_AllBackendLoaderInfo[0]; } if (defaultbackloader != null) { ret.Manager.backendLoader = defaultbackloader.instance; } } } return(ret); }
private PerBuildTargetGroupCache GetOrCreateCachedItem(BuildTargetGroup group, PlayerIdentityGeneralSettings currentSettings) { PerBuildTargetGroupCache cachedItem; m_CachedLoadOrderUIs.TryGetValue(group, out cachedItem); if (cachedItem == null) { // Initialize the item cachedItem = new PerBuildTargetGroupCache { generalSettingsObject = new SerializedObject(currentSettings) }; var managerSettingsProperty = cachedItem.generalSettingsObject.FindProperty("m_LoaderManagerInstance"); if (managerSettingsProperty.objectReferenceValue == null) { // Create the manager settings var ms = CreateInstance <PlayerIdentityManagerSettings>(); AssetDatabase.AddObjectToAsset(ms, AssetDatabase.GetAssetOrScenePath(currentSettings)); managerSettingsProperty.objectReferenceValue = ms; cachedItem.generalSettingsObject.ApplyModifiedProperties(); } cachedItem.managerSettingsObject = new SerializedObject(managerSettingsProperty.objectReferenceValue); if (m_SelectedBackendLoaderInfo != null) { cachedItem.managerSettingsObject.FindProperty("m_BackendLoader").objectReferenceValue = m_SelectedBackendLoaderInfo.instance; } m_CachedLoadOrderUIs[group] = cachedItem; } else { cachedItem.generalSettingsObject.Update(); cachedItem.managerSettingsObject.Update(); } return(cachedItem); }
public void SetSettingsForBuildTarget(BuildTargetGroup targetGroup, PlayerIdentityGeneralSettings settings) { m_Settings[targetGroup] = settings; }