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);

相关推荐
酷炫码神8 小时前
第 2 篇:Java 入门实战(JDK8 版)—— 编写第一个 Java 程序,理解基础运行逻辑
java·开发语言·策略模式
像风一样自由20209 小时前
Go语言详细指南:特点、应用场景与开发工具
开发语言·后端·golang
半夏知半秋9 小时前
基于跳跃表的zset实现解析(lua版)
服务器·开发语言·redis·学习·lua
Wyc724099 小时前
Lua语言基础笔记
开发语言·笔记·lua
黄贵根9 小时前
C++STL系列-04. list和forward_list
c++·list
羑悻的小杀马特10 小时前
CMake 全流程开发实战:从零开始掌握C++项目构建、测试到一键分发的完整解决方案
c++·cmake
T1an-110 小时前
C++版单例模式-现代化简洁写法
c++·单例模式
编码浪子13 小时前
趣味学RUST基础篇(智能指针_结束)
开发语言·算法·rust
一拳一个呆瓜13 小时前
【MFC】对话框属性:Absolute Align(绝对对齐)
c++·mfc
爱编程的化学家14 小时前
代码随想录算法训练营第六天 - 哈希表2 || 454.四数相加II / 383.赎金信 / 15.三数之和 / 18.四数之和
数据结构·c++·算法·leetcode·双指针·哈希