GitHub等からAssetsを持ってきて、アプリをリリースする時などにLICENSEファイルをまとめるのがめんどくさいなぁと思ったりしませんか?僕は数回やってめんどくさいと思いました。
なのでEditor拡張でAssets配下の"LICENSE"ファイルを検索して"Assets/USE_ASSETS_LICENSE"にまとめるようにしてみました。
これで、ライセンス表記をする際に"Assets/USE_ASSETS_LICENSE"からtextを読んでもいいですし、開いてコピペでもいいと思います。良しなに使っていただければと思います。
public static class CreateUseLicenseFile
{
private const string USE_LICENSE_FILE = "use_assets_license_file";
private const string fileName = "USE_ASSETS_LICENSE";
[MenuItem("Assets/Create/Used LICENSE File")]
static void CreateUsedLICENSEFile()
{
System.Text.StringBuilder builder = new System.Text.StringBuilder();
string[] files;
string assetPath = Application.dataPath + "/" + fileName;
AssetDatabase.MoveAssetToTrash(assetPath);
files = AssetDatabase.FindAssets("LICENSE");
foreach (var guid in files)
{
if (Path.GetFileName((AssetDatabase.GUIDToAssetPath(guid))) == "CreateUseLicenseFile.cs" ||
Path.GetFileName((AssetDatabase.GUIDToAssetPath(guid))) == fileName) continue;
var path = AssetDatabase.GUIDToAssetPath(guid).Substring("Assets".Length);
StreamReader reader = new StreamReader(Application.dataPath + path);
builder.Append(reader.ReadToEnd()).AppendLine();
reader.Close();
}
string text = builder.ToString();
if (AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object)) != null && EditorPrefs.GetInt(USE_LICENSE_FILE, 0) == text.GetHashCode())
return;
System.IO.File.WriteAllText(assetPath, text);
EditorPrefs.SetInt(USE_LICENSE_FILE, text.GetHashCode());
AssetDatabase.Refresh(ImportAssetOptions.ImportRecursive);
}
}
こういう拡張があったら二番煎じですみません。。。
最近、作り始めたフレームワークの中に入れています。もし、ご興味のある方は是非。
https://github.com/MizoTake/MomijiFramework/blob/master/Editor/CreateUseLicenseFile.cs