Скопируйте дополнительный файл в папку данных после сборки в единстве
Я должен скопировать два текстовых файла и папку в папку данных моей сборки после завершения сборки для Windows. Каждый раз, когда я строю, я хочу скопировать эти файлы и папку из ресурсов для создания папки данных. Возможно ли это в единстве? потому что иногда я забываю скопировать нужный файл в папку с данными, и мой плеер не работает правильно.
2 ответа
Вы можете подписать статический метод на PostprocessBuild.OnPostprocessBuild. Этот метод будет вызываться каждый раз, когда сборка завершается. Так что ваш код может выглядеть так:
using UnityEditor;
using System.IO;
using UnityEditor.Build;
using UnityEngine;
class MyCustomBuildProcessor : IPostprocessBuild
{
public int callbackOrder { get { return 0; } }
public void OnPostprocessBuild(BuildTarget target, string path)
{
File.Copy("sourceFilePath","destinationFilePath");
}
}
Звучит так, как будто вам нужна собственная функция сборки редактора. Вы можете сделать это с помощью пользовательского пункта меню редактора.
Расширения Unity Editor - пункты меню
Вот как может выглядеть код:
[MenuItem("MyBuildMenu/MyBuildMenuItem")]
static void BuildAndCopyItems()
{
File.Copy("path1","path2"); // copy your files
BuildPipeline.BuildPlayer(); // build the player
}
вам нужно будет передать правильные аргументы в BuildPlayer:
Файл, содержащий этот скрипт, должен находиться в вашем проекте в папке с именем "Редактор".
И вы получите новый пункт меню в редакторе Unity для выполнения вашей пользовательской сборки: