はじめに
「PatchLibrary」を Unity プロジェクトに導入することで
Unity エディタを終了しなくてもネイティブプラグインを更新できるようになります
基本的な使い方は上記サイト様で紹介されていますが
自分が試した手順も備忘録としてまとめておきます
設定
https://github.com/i-saint/PatchLibrary/archive/master.zip
上記のリンクを開いて「PatchLibrary-master.zip」をダウンロードしたら展開しておきます
Visual Studio で DLL 開発用プロジェクトのプロパティを開いて
左メニューで「構成プロパティ > ビルド イベント > ビルド後のイベント」を選択して
「コマンド ライン」の「<編集...>」を押します
コマンドラインウィンドウが表示されたら
xcopy /Yq $(TargetPath) 【Unity プロジェクトのパス】\Assets\Plugins\x86_64\ 【PatchLibrary-master のダウンロード先のフォルダ】\bin\PatchLibraryProxy64.exe /target:Unity.exe /patch:$(TargetPath)
上記のコードの 【Unity プロジェクトのパス】
【PatchLibrary-master のダウンロード先のフォルダ】
を適宜変更して貼り付けます
貼り付けたら「OK」を 2 回押します
これで設定が完了です
動作確認
#include "pch.h" #define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int __stdcall get_value() { return 25; }
ネイティブプラグインの C++ のコードを適当に用意して
using System.Runtime.InteropServices; using UnityEngine; public class Example : MonoBehaviour { [DllImport( "Dll1" )] private static extern int get_value(); private void Update() { Debug.Log( get_value() ); } }
Unity の C# スクリプトも適当に用意して Unity を実行します
Unity を実行した状態でネイティブプラグインのコードを変更してビルドすると
変更した内容が Unity に反映されるようになったことが確認できます