Unity C++交互

一、设置Dll输出。

两种方式:

  • 第一:直接创建动态链接库工程
  • 第二:创建的是可执行程序,在visual studio,右键项目->属性(由exe改成dll)

二、生成Dll

根据选项Release或Debug,运行完上面的生成解决方案后,会在工程目录下生成x64/Relese/xxx.dll。至此dll生成完成。

三、c++代码补充

注意:_declspec(dllexport)是必须在方法前面,否则c#会调用不到这个方法。

extern "C" 以c的方式去编译也是必要的

先创建DllForUnity.h头文件

复制代码
#pragma once
#include<math.h>
#include<string.h>
#include<iostream>
#define _DllExport _declspec(dllexport) //使用宏定义缩写下
 
 
extern "C"
{
   _DllExport float GetDistance(float x, float y);
}

再创建DllForUnity.cpp实现文件。

复制代码
#include <DllForUnity.h>
 
float GetDistance(float x, float y)
{
    return x+y;
}

四、C#调用

  • 将打好的dll拷贝到Unity Plugins文件夹下

  • 引入c++方法

    复制代码
    [DllImport("RoboidS", EntryPoint = "GetDistance")]
    private static extern float GetDistance(float x, float y);
  • 最后直接调用 GetDistance(1, 2);

相关推荐
艾莉丝努力练剑15 分钟前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(五)
c语言·开发语言·数据结构·学习·算法
云空17 分钟前
《QtPy:Python与Qt的完美桥梁》
开发语言·python·qt·pyqt
救赎小恶魔22 分钟前
C++11的整理笔记
c++·笔记
晓131331 分钟前
JavaScript加强篇——第六章 定时器(延时函数)与JS执行机制
开发语言·javascript·ecmascript
岁忧43 分钟前
(LeetCode 面试经典 150 题 ) 209. 长度最小的子数组(双指针)
java·c++·算法·leetcode·面试·go
wh_xia_jun1 小时前
基于 Python 的数据分析技术综述
开发语言·python·数据分析
小何好运暴富开心幸福1 小时前
分层架构的C++高并发内存池性能优化
c++·性能优化·架构
XH华1 小时前
C语言第一章数据类型和变量(上)
c语言·开发语言
暗影~行星1 小时前
C语言,结构体指针案例
c语言·开发语言
(Charon)1 小时前
C语言手写简易 DNS 客户端(接收部分)
c语言·开发语言