メモ
ビルドが開始される前(エディタ上でシーン再生も含まれる)
OnPreprocessBuild
ビルド中にシーンのコールバックを受け取る
OnProcessScene
if(EditorApplication.isPlaying==false) でビルド時のみ
コールバックの順序を制御
callbackOrder
ビルドの完了後
OnPostprocessBuild
StreamingAssetsに置いているフォルダなどで
エディタ上では使用するけどビルドしたファイルには含めたくない場合
/// <summary>
/// ビルド時のみフォルダを一旦移動する
/// </summary>
private static void MoveFolderTemporarily()
{
if (EditorApplication.isPlaying == false)
{
Debug.Log("ビルド時のみTestsフォルダを一旦移動する");
var filePath = Application.streamingAssetsPath + "/除外したフォルダ";
var nextPath = "StreamingAssetsTemp";
FileUtil.MoveFileOrDirectory(filePath, nextPath);
}
}
/// <summary>
/// ビルド時のみ一時移動していたフォルダを元の位置に戻す(ビルド完了時に呼ぶ)
/// </summary>
private static void ReturnTemporaryMoveFolder()
{
if (EditorApplication.isPlaying == false)
{
Debug.Log("ビルド時のみ一時移動していたフォルダを元の位置に戻す");
var filePath = Application.streamingAssetsPath + "/除外したフォルダ";
var nextPath = "StreamingAssetsTemp";
FileUtil.MoveFileOrDirectory(nextPath, filePath);
}
}
OnPreprocessBuildでMoveFolderTemporarilyを呼ぶと
プロジェクトルートにフォルダがリネームされて移動する
OnPostprocessBuildでReturnTemporaryMoveFolderを呼ぶと
移動していたフォルダを戻す(名前も)
参考
https://docs.unity3d.com/ja/2018.4/ScriptReference/FileUtil.MoveFileOrDirectory.html
※コメントは承認後に表示されます。
コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。