public static void ReplaceAllPHFonts() { foreach (var kvp in _PHFontNameToAssetName) { List <string> flags = new List <string>() { "" }; var allflags = CapsDistributeEditor.GetOptionalDistributes(); for (int i = 0; i < allflags.Length; ++i) { var flag = allflags[i]; if (!ResManager.GetValidDistributeFlagsSet().Contains(flag)) { flags.Add(flag); } } flags.AddRange(ResManager.GetValidDistributeFlags()); var list = GetFallbackFontNames(kvp.Key, flags.ToArray()); var fiph = AssetImporter.GetAtPath(kvp.Value) as TrueTypeFontImporter; if (fiph != null) { if (!ListEquals(fiph.fontNames, list)) { fiph.fontNames = list.ToArray(); fiph.fontReferences = null; EditorUtility.SetDirty(fiph); AssetDatabase.WriteImportSettingsIfDirty(kvp.Value); AssetDatabase.ImportAsset(kvp.Value); AssetDatabase.Refresh(); } } } }
public void SaveDistributeFlags() { var old = ResManager.PreRuntimeDFlags; bool changed = old.Count != DistributeFlagOrder.Count; if (!changed) { int index = 0; foreach (var flag in DistributeFlagOrder) { if (old[index++] != flag) { changed = true; break; } } } if (changed) { AssetDatabase.SaveAssets(); System.Text.StringBuilder sbflags = new System.Text.StringBuilder(); foreach (var oflag in DistributeFlagOrder) { sbflags.Append("<"); sbflags.Append(oflag); } var path = CapsDistributeEditor.GetDistributeFlagsFilePath(); System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)); System.IO.File.WriteAllText(path, sbflags.ToString()); AssetDatabase.ImportAsset(CapsModEditor.GetAssetNameFromPath(path)); ResManager.PreRuntimeDFlags = new List <string>(DistributeFlagOrder); CapsDistributeEditor.FireOnDistributeFlagsChanged(); } }
public static void Init() { var win = GetWindow <DistributeSelectWindow>(); win.titleContent = new GUIContent("Distribute Flags"); win.DistributeFlags = new Dictionary <string, bool>(); win.DistributeFlagOrder = new LinkedList <string>(); var allflags = CapsDistributeEditor.GetOptionalDistributes(); for (int i = 0; i < allflags.Length; ++i) { win.DistributeFlags[allflags[i]] = false; } var selflags = ResManager.PreRuntimeDFlags; for (int i = 0; i < selflags.Count; ++i) { win.SelectDistributeFlag(selflags[i], true); } win.SaveDistributeFlags(); }
private static void OnPackagesChanged() { CapsDistributeEditor.CheckDefaultSelectedDistributeFlags(); CapsModEditor.CheckModsAndMakeLink(); UnityEngineEx.ResManager.RebuildRuntimeResCache(); }