今までも何度かやった経験はあるのだが、Unityで外部DLLのライブラリをコールする方法について、書いておく。 今回、いくらやっても動かず、5時間ぐらい格闘してしまったので、また同じことにならないように備忘録として、また、初めてやる人の参考として簡単にまとめておく。 DLLはVisual StudioのC++でビルドして作り、これをUnityにインポートして、Unity ScriptからC++のファンクションコールする、という流れである。今回、あまりに動かないんで、最後の最後、もっとも簡単なコードにして確認した。もちろん、この簡単コードはUnityのマニュアルにもあって、それとそれほど変わるところは無いんだが。 DLL側のコード extern "C" __declspec(dllexport) int Add(int a, int b) { return(a + b); } Visual Studio 2015使用。C++のWin32アプリでDLLを選んでプロジェクトを作る(名前をdlltestとしよう) ごちゃごちゃファイルができるがそのままやってもいいけど、今回、メインのdlltest.cpp以外のstdafx.hとかそういうのは全部消しちゃった。 上記コードをdlltest.cppにコピペ(ヘッダーも何もなく、これだけ) ビルドする。設定はReleaseのx64。つまり64ビットDLL dlltest.dllができる Unity側のコード using UnityEngine; using System.Runtime.InteropServices; public class NewBehaviourScript : MonoBehaviour { [DllImport("dlltest")] public static extern int Add(int a, int b); void Start () […]
Daily Archives: April 5, 2016
1 post