1.07, x64用。バックアップをとってから試してね
- Visual Studio Community 2015 をインストール
- https://www.visualstudio.com/features/unitytools-vs の 「無償 VS Tools for Unity」から「vstu2015.msi」をダウンロードしてインストール
- http://www.mono-project.com/download/#download-win から「mono-4.0.3-gtksharp-2.12.26-win32-0.msi」をダウンロードしてインストール
- http://unity3d.com/jp/get-unity/download/archive の「Unity 4.6.8」内にある「Unity エディター」から「UnitySetup-4.6.8.exe」をダウンロード。*インストールはしない*
- 「UnitySetup-4.6.8.exe」を 7z で展開 (ここでは 7-Zip 9.20を使って
7z x UnitySetup-4.6.8.exe
で展開) して、「$_OUTDIR/windowsstandalonesupport/Variations/win64_development/player_win.exe」を「C:\CM3D2_KAIZOU\CM3D2x64.exe」として上書きコピー - 「C:\CM3D2_KAIZOU\CM3D2x64_Data\PlayerConnectionConfigFile」を開き、「listen 1719714488 0 0」を「listen 1719714488 1 1」に書き換え
- ここで、一旦「C:\CM3D2_KAIZOU\CM3D2x64.exe」を起動して右下に「Deveopment Build」の表示が出るのを確かめる
- さらにVisual Studioを起動して「DEBUG -> Attach Unity Debugger」を実行。「Select Unity Instance」ダイアログが出るので、その中に「WindowsPlayer」があることを確認
- まだデバッグはできないので、とりあえず確認したら、Visual StudioとCM3D2x64.exeを閉じる
- UnityInjector用プラグインをデバッグビルドする (CM3D2.hoge.Plugin.dll とします。pdbも出ていることを確認してね)
- コマンドラインでDLLが生成されたディレクトリ(bin/Debug/など)に移動して、
"C:\Program Files (x86)\Mono\Bin\pdb2mdb.bat" CM3D2.hoge.Plugin.dll
を実行。実行に成功すると「CM3D2.hoge.Plugin.dll.mdb」が出力される - 「CM3D2.hoge.Plugin.dll」と「CM3D2.hoge.Plugin.dll.mdb」をUnityInjectorフォルダーへコピー
- 7と8を実行してデバッガをアタッチする
- CM3D2.hoge.Plugin.dll内のコードでブレークポイントをつけてみて、停止すれば成功
バニラのCM3D2x64.exe
と差し替えるplayer_win.exe
のバージョンを合わせないと、うまく動かないときがあります。
バージョンはエクスプローラーでバニラのCM3D2x64.exe
のプロパティーを出して「詳細」タブの「製品バージョン」で確認できます。
この「製品バージョン」と同じバージョンのUnityに含まれるplayer_win.exe
を使ってください。
古い Mono (4より前) や Unity (4.x) に含まれるpdb2mdb
は新しいVisual C#が出力するpdbファイルに対応していません。
新しい Mono (4.x) や Unity (5.x) に含まれるpdb2mdb
を使ってください
- ReiPatcherでパッチをあてる
- Assembly-CSharp.dllに対して、dotPeek等でソリューションのエクスポートをしてAssembly-CSharp.pdbを作る
- pdb2mdbでmdbを作る
- mdbをCM3D2x64_Data\Managed\にコピー
- CM3D2x64を起動
- VisualStudioを起動して DEBUG -> Attach Unity Debugger でアタッチ
- VisualStudio内の FILE -> Open -> File (Ctrl+O) で dotPeek で作った GameMain.cs を開く
- 「Update()」を検索して、ブレークポイントを置く