【Unity】アセット内全てのLICENSE.txtをまとめる【エディタ拡張】
メリークリスマス。
ライセンス表示を実装し忘れて大慌てした記憶があるので作ってみました~
using System.IO; using System.Text; using System.Linq; using UnityEngine; using UnityEditor; /// Put it in the Editor folder and click Edit->CreateLicenseFile /// @author sana@f-tg.net /// https://f-tg.net public class LicenseFileGenerator : MonoBehaviour { [MenuItem("Edit/CreateLicenseFile", false, 10)] static void CreateLicense(MenuCommand command) { string path = Application.dataPath + "/"; string[] files = Directory.GetFiles(path, "LICENSE.txt", SearchOption.AllDirectories); string[] licenseArr = new string[files.Length]; for (int i = 0; i < files.Length; i++) { char delim = '/'; #if UNITY_EDITOR_WIN delim = '\\'; #endif string header = $"--------------------------------\n{files[i].Split(delim).Reverse().ToArray()[1]}\n--------------------------------\n"; StreamReader sr = new StreamReader(files[i], Encoding.UTF8); licenseArr[i] = header + sr.ReadToEnd(); sr.Close(); } string savePath = Application.dataPath + "/Resources/AllLicense.txt"; File.WriteAllText(savePath, string.Join("\n\n", licenseArr)); AssetDatabase.Refresh(); } }
EditタブのCreateLicenseFileを実行するとAssets内全てのLICENSE.txtをまとめたAssets/Resources/AllLicense.txtが生成されます。
...好きだからUtf8Json使ってるけどJsonUtilityでええやんと言われがち
※ソースコードの使用は自己責任でご自由にどぞ