Я рекомендую использовать подход 1
Оба подхода звучат корректно, но я рекомендую использовать подход 1 для связи с MadChess.exe как процесс, потому что это намного меньше работы, чем подход 2, особенно если у вас уже работает первый подход ( кроме вопроса сборки).
Кроме того, кроме исходного кода, если проект MadChess предоставляет только файлы exe
, а не файлы dll, то я думаю, что безопаснее придерживаться подхода, который неявно "рекомендуется" проектом. Вы не знаете, с какими проблемами вы столкнетесь, когда попытаетесь сами создать dll-файлы (и, похоже, вы уже сталкивались с проблемами).
Несмотря на то, что возможно использование dll-файлов, я думаю, что предпочтительнее выбрать подход, который позволит вам быстрее прогрессировать в вашем проекте. Вы всегда можете перейти к подходу 2 позже, если столкнетесь с другими проблемами.
(Обязательно укажите соответствующие ошибки в случае, если MadChess.exe не найден, чтобы можно было быстро устранять неполадки.)
Как включить MadChess.exe в состав вашей сборки
Вам необязательно нужен установщик, чтобы включить в игру файл MadChess.exe . Вы также можете скопировать MadChess.exe как часть Build Player Pipeline . Используя BuildPipeline.BuildPlayer
или PostProcessBuildAttribute
, вы можете получить путь к построенному проекту, а затем использовать FileUtil.CopyFileOrDirectory
для копирования MadChess.exe на этапе сборки.
Кроме того, как @AdrianSgro упоминается в комментарии, StreamingAssets
также работает. (Но обратите внимание, что в документации явно упоминается, что файлы DLL в этой папке не включены, если вам нужно включить какие-либо зависимости dll.)