前往
大廳
主題

[MOD] Unity Mod製作1 - 環境安裝&設定

海星 | 2021-05-24 23:57:14 | 巴幣 22 | 人氣 1300

記錄第一次寫Unity Mod的過程
這次的目標遊戲是戴森球計畫,以後簡稱為DSP

關於MOD製作詳細教學可以看以下的連結
我自己對Unity和C#瞭解不深,所以寫的東西看看就好

官方文件

英文教學

中文教學
宵夜97的專欄系列 : https://www.bilibili.com/read/cv8997376



1. 安裝BepInEx框架


首先先下載BepInEx的穩定版本
windows開工作管理員檢查遊戲名稱,後面有(32bits)選x86,反之選x64
DSP是64bit的,因此下載BepInEx x64的版本

解壓縮後會有1個資料夾和3個檔案
將這些放到steam遊戲的安裝資料夾
例:C:/Program Files (x86)/Steam/steamapps/common/Dyson Sphere Program
然後執行遊戲一次
成功之後BepInEx資料夾內會出現core之外的其他資料夾
之後安裝插件就把.dll或含有.dll的整個資料夾放到\BepInEx\plugins就可以了

2. 安裝.NET反編譯器(dnSpy/dotPeek)


將(遊戲資料夾)/DSPGAME_Data/Managed/Assembly-CSharp.dll丟進去反組譯
這樣就可以看遊戲的code
如果不想要看到Token可以把下面的選項取消勾選
View > Options > Decomplier > Show tokens, RVA and file offsets

3. BepInEx的Debug相關設定和插件


BepInEx.cfg
修改BepInEx/config/BepInEx.cfg顯示除錯訊息,方便debug
這裡有一個改好的.cfg檔 可以參考

ScriptEngine可以讓我們不用重開遊戲就能測試MOD
安裝後,遊戲中按下F6就可以熱重載BepInEx\scripts裡面的.dll

UnityExplorer可以讓我們查看遊戲物件
下載UnityExplorer.BIE5.Mono.dll放到BepInEx\plugins中完成安裝
F7打開/關閉介面

4. 其他工具


將.dll中的成員通通設為public,這樣就不必通過Reflect來存取private成員
將目標dll拖曳到AssemblyPublicizer.exe就會在publicized_assemblies/下產生公開化的dll
使用公開化的dll要在專案設定中把建置>"允許不安全的程式碼"打開
否則運行時存取私有成員會跳出存取違規錯誤

比較兩個dll的不同
在遊戲更新時用來檢查哪些地方有更動

創作回應

更多創作