/// <summary> /// Updates the <see cref="AssetBundleAdaptorMap" /> asset by resolving /// the metadata in the <see cref="AssetBundleMap" /> using the remote /// adaptor type and server type. /// </summary> public static AssetBundleAdaptorMap UpdateAssetBundleAdaptorMap(bool showProgress = true) { if (showProgress) { EditorUtility.DisplayProgressBar( "UpdateAssetBundleAdaptorMap", "Finding asset bundle adaptor map...", 0 ); } AssetBundleMap assetBundleMap; assetBundleMap = AssetBundleMapEditor.FindAssetBundleMap(); AssetBundleAdaptorMap assetBundleAdaptorMap; assetBundleAdaptorMap = FindOrCreateAssetBundleAdaptorMap(); SerializedObject serializedObject; serializedObject = new SerializedObject(assetBundleAdaptorMap); { string[] assetBundleNames; assetBundleNames = AssetDatabase.GetAllAssetBundleNames(); SerializedProperty assetBundleNamesProperty; assetBundleNamesProperty = serializedObject.FindProperty("m_AssetBundleNames"); assetBundleNamesProperty.arraySize = assetBundleNames.Length; SerializedProperty adaptorTypesProperty; adaptorTypesProperty = serializedObject.FindProperty("m_AdaptorTypes"); adaptorTypesProperty.arraySize = assetBundleNames.Length; for (int index = 0; index < assetBundleNames.Length; index++) { if (showProgress) { EditorUtility.DisplayProgressBar( "UpdateAssetBundleAdaptorMap", "Updating adaptor types...", index / (float)(assetBundleNames.Length) ); } string assetBundleName; assetBundleName = assetBundleNames[index]; AssetBundleDeploymentInfo info; info = ( assetBundleMap .DeploymentInfo .Where(i => i.AssetBundleName.Equals(assetBundleName)) .Where(i => i.Platform == PlatformUtil.ActivePlatform || i.Platform == Platform.Unknown) .OrderByDescending(i => i.Platform) .FirstOrDefault() ); assetBundleNamesProperty.GetArrayElementAtIndex(index).stringValue = info.AssetBundleName; adaptorTypesProperty.GetArrayElementAtIndex(index).intValue = (int)GetAdaptorType(info.DeploymentType); } } { if (showProgress) { EditorUtility.DisplayProgressBar( "UpdateAssetBundleAdaptorMap", "Updating server info...", 1 ); } SerializedProperty property; property = serializedObject.FindProperty("m_ServerAdaptorOptions"); if (GetRemoteAdaptorType() == AssetBundleAdaptorType.AssetBundleServer) { AssetBundleServerInfo info; info = ( assetBundleMap .ServerInfo .Where(i => i.ServerType.Equals(GetServerType())) .Where(i => i.Platform == PlatformUtil.ActivePlatform || i.Platform == Platform.Unknown) .OrderByDescending(i => i.Platform) .FirstOrDefault() ); property.FindPropertyRelative("Url").stringValue = info.Url; } else { property.FindPropertyRelative("Url").stringValue = string.Empty; } } serializedObject.ApplyModifiedProperties(); if (showProgress) { EditorUtility.ClearProgressBar(); } return(FindAssetBundleAdaptorMap()); }
public static GUIStyle GetStyle(string key) { return(AssetBundleMapEditor.GetStyle(key)); }
public static void SetFoldout(string key, bool value) { AssetBundleMapEditor.SetFoldout(key, value); }
public static string GetPlaformName(Platform platform) { return(AssetBundleMapEditor.GetPlaformName(platform)); }
public static bool GetFoldout(string key) { return(AssetBundleMapEditor.GetFoldout(key)); }