Unity Il2cpp 游戲的 Mod 制作教程02 - 創(chuàng)建工程文件
使用模板創(chuàng)建插件工程
創(chuàng)建工程文件夾,打開(kāi)命令行,并執(zhí)行以下命令
該命令會(huì)創(chuàng)建 MyFirstPlugin 文件夾,并生成:
Plugin.cs
: 插件源文件(可以簡(jiǎn)單看一下格式,后面其實(shí)用不到)MyFirstPlugin.csproj
: 工程配置文件
用 IDE 打開(kāi) MyFirstPlugin.csproj 或者整個(gè)工程文件夾


添加游戲庫(kù)文件依賴
當(dāng)你第一次運(yùn)行BepInEx時(shí),會(huì)dump出的游戲庫(kù)文件(實(shí)際上調(diào)用了Il2CppInterop或者Cpp2IL)。這些庫(kù)文件可以使用 dnspy 或者 ILspy 進(jìn)行反匯編,可以查看 dll 中的類(lèi)以及函數(shù)名以及相應(yīng)的偏移。當(dāng)我們有一個(gè)dll文件的符號(hào)表以及函數(shù)偏移后就能夠告訴編譯器如何調(diào)用其中的函數(shù)了。所以我們可以將這些庫(kù)文件作為我們工程的依賴文件,來(lái)調(diào)用游戲庫(kù)中的函數(shù)。
Dump 出的游戲庫(kù)文件默認(rèn)在?BepInEx/interop
?下(老版本的bepinex為BepInEx/unhollow
)。

在工程中添加這些依賴,一般用到的也就如上圖所示,也有一些游戲會(huì)選擇將 script 按模塊編譯到不同 dll 中,看具體情況。
至此如果一切順利,項(xiàng)目的依賴如上圖,可能需要手動(dòng)安裝 Package,可以去repo找相應(yīng)的版本然后安裝。repo網(wǎng)址為?https://nuget.bepinex.dev/
Tips
可以右鍵引用打開(kāi)其屬性窗口,設(shè)置 copy local 為否,防止將游戲庫(kù)文件拷貝到生成目錄中。

打開(kāi)工程配置文件,添加如下條目,可以在每次編譯完成時(shí)將產(chǎn)生的mod文件直接拷貝到 plugins下。注意需要自行修改plugins的路徑。

參考
https://docs.bepinex.dev/master/articles/dev_guide/plugin_tutorial/1_setup.html