C++ 与Unity交互, 将C++导出为 .dll 文件,然后倒入到Unity中,使用C#调用C++方法
打开VS2012
一、创建项目
二、创建一个 Win32控制台应用程序或者 Win32项目
点击"确认"
选择 DLL(D) 和 “空项目”
三、创建类
打开 TestDLL.h 文件
#pragma once
#if defined (EXPORTBUILD)
# define _DLLExport __declspec (dllexport)
# else
# define _DLLExport __declspec (dllimport)
#endif
extern "C" int _DLLExport MyADD(int x,int y);
打开TestDLL.cpp
#define EXPORTBUILD
#include "TestDLL.h"
int _DLLExport MyADD(int x,int y)
{
return x + y;
}
四、 菜单栏选择 “生成” -> “配置管理器“
配置如下
五、 生成解决方案
Test.vcxproj -> E:\C#\1\Test\Release\Test.dll 即为生成的 .dll 位置
创建一个Unity工程
在Assets文件夹下创建 Plugins 文件夹, 将生成的 Test.dll文件放在Plugins文件夹下
创建一个脚本 TestDllScript 代码如下
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
public class TestDllScript : MonoBehaviour {
private int num = 1;
[DllImport("Test")]
private static extern int MyADD(int x, int y);
void OnGUI()
{
if (GUI.Button(new Rect(100, 100, 100, 100), "MyADD"))
{
num = MyADD( num, num);
}
GUI.Label(new Rect(100, 300, 300, 200), "num = " + num.ToString());
}
}
将脚本拖拽到摄像机上运行