dll放在unity哪个文件夹下_unity中调用dll文件总结

unity中调用dll文件总结

根据收集的资料,对unity中调用dll文件进行总结,目前常用的两种,在给出vs中封装dll文件的步骤。

一、调用c#中的dll文件

1.1封装dll文件

首先新建一个项目

然后创建一个类库,例如命名为Csharp

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Csharp

{

public class Class1

{

public static string getName(string name)

{

return name;

}

}

} 然后编译成dll文件,名字为Csharp.dll

1.2.在unity中使用自定义的dll组件

在unity中创建一个Plugins文件夹,所有的外部引用的dll组件必须要放在这个文件下,才能被using。如果是C#封装的dll,就用 using的方式引用,如果是C++的dll,就DllImport[""]的方式来添加对dll的引用。然后我在C#脚本中用这个dllusing UnityEngine;

using System.Collections;

using Csharp; //引用c#生成的dll文件,namespace的名字

public class TestDllOne : MonoBehaviour {

// Use this for initialization

void Start () {

}

// Update is called once per frame

void OnGUI()

{

if (GUILayout.Button("test c# dll"))

{

Debug.Log(Class1.getName("hello world "));

}

}

二、调用c++中的dll文件

在本文中用VS2013进行 C++创建DLL图解

1.创建项目: Win32->Win32项目,名称:MyDll

.

单击下一步后选择如下图所示

单击完成后,右击选择头文件-->添加 ----> 新建项如下图操作

选择头文件并且命名,例如TestDll.h,命名后单击添加

在TestDll.h 头文件中写入代码如下# define _DLLExport __declspec (dllexport)

# else

# define _DLLExport __declspec (dllimport)

#endif

extern "C" int _DLLExport MyADD(int x, int y);

选择源文件,如下图所示

``

选择添加后,在Test.cpp 源文件中写入代码如下//宏定义

#define EXPORTBUILD

//加载头文件

#include "TestDll.h"

//设置函数

int _DLLExport MyADD(int x, int y)

{

return x + y;

}

编译后将生成的MyDll.dll 文件导入unity中的Plugins文件中

如果是C++的dll,就DllImport[""]的方式来添加对dll的引用using UnityEngine;

using System.Collections;

using System.Runtime.InteropServices; //调用c++中dll文件需要引入

public class TestDllOne : MonoBehaviour {

[DllImport("MyDll")]

static extern int MyADD(int x , int y);

// Use this for initialization

void Start () {

}

// Update is called once per frame

void OnGUI()

{

if (GUILayout.Button("test c++ dll"))

{

int i = MyADD(12 , 23);

Debug.Log("sum = :" + i.ToString());

}

}

}

使用c#生产的dll会有如下问题:

Running into Issues?:

Internal compiler error ... System.Reflection.ReflectionTypeLoadException

If you are getting an error similar to Internal compiler error. System.Reflection.ReflectionTypeLoadException in Unity when trying to build your project; You need to change the targeted .NET version of your C# file to something like .NET 3.5.Right click on your C# project and go to Properties

In the Application tab, change the Target Framework to .NET Framework 3.5

Failed to load ... expected 64 bit architecture (IMAGE_FILE_MACHINE_AMD64), but was IMAGE_FILE_MACHINE_I386.

If you are getting this error, you probably need to recompile your libraries for x64 platform (64 bit).

In Visual Studio, go to the properties of your project, then at the top click the "Configuration Manager..." button. In the table, under the Platform column, change it to "x64" then recompile your project.

作者:我听到你了

ps:以上是unity中调用dll文件总结全部内容,希望文章能够帮你解决unity中调用dll文件总结所遇到的游戏开发问题。

本文收录在 游戏编程 🕹️ - 学习Unity专题,分享走一走~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[vue] watch和计算属性有什么区别?

[vue] watch和计算属性有什么区别? 一个是侦听属性,一个是计算属性 2.一个是为了应对复杂的逻辑计算,一个是对数据的变化作出反应 3.一个是只有当缓存改变时才执行,一个是只要从新渲染就会执行 4.一个有缓存,一个没有…

如何将阿里云的数据库备份RDS文件在本地恢复

1.首先把RDS文件下载到本地,我的备份文件3.5G(下载时间6分钟); 压缩包: hins2448103_data_20180127044633.tar.gz 2.解压下载的RDS压缩包: tar -xzvf hins2448103_data_20180127044633.tar.gz 解压完是一个一个的数据库文件夹…

idea中lombok的使用

1.安装插件 在File-Setting-Plugins-Browse Repostitories中搜索Lombok Plugin插件安装 安装完成先别急着重启,继续设置,在File-Setting-Build, Execution, Deployment-Compiler-Annotation Processors中点击Enable annotation processors 确定后重启ide…

是隐极电机_资料 | 发电机定子绕组端部动态特性试验详解

一、试验目的大型汽轮发电机运行过程中,定子端部受二倍工频(100Hz)的电磁激振力。如果定子端部的模态接近100Hz,将发生谐振,从而可能因振幅过大而发生结构松动、磨损、绝缘损坏等现象,甚至断裂等故障,严重威胁机组的安…

[vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?

[vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢? 对象为引用类型,当重用组件时,由于数据对象都指向同一个data对象,当在一个组件中修改data时,其他重用的组件中的data会同时被修改;而使用返…

Mac系统xampp环境下安装redis和phpredis

一、安装redis服务 通过homebrew安装redis sudo brew install redis 安装Homebrew mac下redis简单命令 1.安装命令 brew install redis 2.启动Redis命令 redis-server /usr/local/etc/redis.conf 3.停止redis server服务 redis-cli shutdown 4.退出redis server服务 C…

[导入]在C++ Builder3下实现程序自动运行的方法

文章来源:http://blog.csdn.net/nm/archive/2000/08/10/4403.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2000/08/10/816562.html

[vue] 说说你对keep-alive的理解是什么?

[vue] 说说你对keep-alive的理解是什么? keep-alive是Vue提供的一个抽象组件,用来对组件进行缓存,从而节省性能,由于是一个抽象组件,所以在页面渲染完毕后不会被渲染成一个DOM元素个人简介 我是歌谣,欢迎…

Problem01 不死神兔

题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... …

中动态路径加载_GOT段在linux系统中实现代码动态加载的作用和其他段的说明

上一节我们看到,当程序想调用系统函数时,在编译阶段无法确认被调用函数所在的虚拟地址。因此必须有机制让程序在运行过程中,在调用系统API的时候有办法去确定所调用的系统函数对应的入口地址,这就是代码运行时对应动态加载的过程。…

构件化软件生产

前面提到的是个人理想,那个是远景的。近期能够触摸到的就是构件化的软件生产了。先摘抄一句我非常喜欢的话:“软件工厂一定不是源代码拼装起来的,而是目标代码拼装出来的。就像零件生产一样,给你一个螺丝就可以拧上,而…

[vue] 你有写过自定义组件吗?

[vue] 你有写过自定义组件吗? 写过,随便说点组件的引入问题、注册问题、传值问题吧个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

GitLab结合Eclipse的简单使用 - 20190211

需求: 移动端的值班经理视图调用了三个接口,需要在移动段的应用下加上三个接口的路由,分别是: /xxx-mvc/dutyView/getProviderSysDeal /xxx-mvc/dutyView/getSysAlarmData /xxx-mvc/dutyView/getSysStaffInfo package com.xxx.xxx…

单片机shell命令_MCU调试大法:使用串口实现简单shell功能

MCU调试大法:使用串口实现简单shell功能[复制链接]MCU程序调试方法有很多,比如软/硬件仿真、添加数据打印等。像Keil MDK就支持不少单片机的软件仿真,在没有拿到单片机的情况下,就可以先仿真调试部分功能,查看代码逻辑…

Google Desktop 果然

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />如果是真的&#xff0c;那么果然可怕&#xff0c;还好没有安装&#xff0c;诸位有安装和使用的有没有如下的体验&#xff1f; http://blogs.salon.com/0001561/categories/visual…

[vue] 怎么在vue中使用插件?

[vue] 怎么在vue中使用插件&#xff1f; npm 安装 然后再main.js 引入 最后 vue.use(插件名)个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

中文整合包_MIMOSA2: 基于微生物组和代谢组数据的整合分析

MIMOSA2&#xff1a;基于微生物组和代谢组数据的整合分析MIMOSA2 升级自MIMOSA1。是 Borenstein 实验室(http://borensteinlab.com/ , 专注宏基因组系统 生物学)最新开发的工具。用于微生物群落和代谢组的整合分析&#xff0c;寻找微生物和代谢产物之间的关系。先前Borenstein …

微软建议的ASP性能优化28条守则

二十八条改善 ASP 性能和外观的技巧 Len Cardinal&#xff0c;高级顾问&#xff0c;Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师 Microsoft Corporation 2000 年 4 月 摘要&#xff1a;本文介…

[vue] vue如何监听键盘事件?

[vue] vue如何监听键盘事件&#xff1f; 那要看你怎么监听了, 比如 keyup.enter, 或者直接全局监听个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

同余逆元简单总结

# 同余&逆元 1. 同余 1. 同余的基本概念及性质 若\(x\)%\(ma\)即m是 x-a 的一个因子, 则称x与a关于m同余,记作:\[x \equiv a(mod \;m)\]同余基本性质:○1. 自反性:\(a \equiv a(mod\;m)\) ○2. 对称性:\(a \equiv b(mod\;m) \rightarrow b \equiv a(mod\;m)\) ○3. 传递性:…