Unity 调用外部DLL插件

在此说明的是,本文说明的是调用非C#语言包装的DLL文件,因为C#的DLL文件在unity中被使用更简单,using dllname就好,当然dll插件都要放在相应的文件目录。

http://docs.unity3d.com/Manual/NativePlugins.html (unity 原生插件使用)

原生插件

为了使unity能否访问我们写的插件代码,我们要调用的方法的代码一定要基于C语言的方式写。原生插件需要提供一个C接口(暴露给用户使用的部分)。

以C++为例

extern "C"
{
    int __declspec(dllexport) AddValue(int a, int b) {
        return a + b;
    }
}

写好这样一个C接口后,把生成的DLL文件放在unity项目的D:\Unity5.X Project\middleVR\Assets\Plugins\x86_64目录下,因为我的项目是x64环境编译的,x86环境就是放在相应的x86

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity调用DLL有几种常见的方法。以下是其中的两种方法: 1. 使用DllImport特性: - 将DLL文件放置在Unity项目的Assets/Plugins文件夹下(如果没有该文件夹,可以手动创建)。 - 在C#脚本中,使用[System.Runtime.InteropServices.DllImport]特性声明要调用DLL函数。例如: ```csharp using System.Runtime.InteropServices; public class MyScript : MonoBehaviour { [DllImport("mydll")] // 替换为实际的DLL名称 private static extern void MyDllFunction(); void Start() { MyDllFunction(); // 调用DLL函数 } } ``` 2. 使用Unity插件系统: - 创建一个新的C#类,然后将其放置在Unity项目的Assets/Editor文件夹下。 - 在该类中,使用UnityEditor命名空间下的PluginImporter类来导入DLL并设置相关属性。例如: ```csharp using UnityEditor; public class MyDllImporter : AssetPostprocessor { private void OnPreprocessAssembly() { if (assetPath.Contains("mydll")) // 替换为实际的DLL名称 { PluginImporter pluginImporter = (PluginImporter)assetImporter; pluginImporter.SetCompatibleWithEditor(true); pluginImporter.SetCompatibleWithAnyPlatform(false); pluginImporter.SetCompatibleWithPlatform(BuildTarget.StandaloneWindows, true); // 替换为实际的目标平台 } } } ``` - 在Unity编辑器中,导入DLL文件,并确保在Inspector窗口中设置了正确的平台兼容性。 请注意,调用DLL可能涉及到特定的函数签名和参数传递方式,具体取决于DLL的实现。因此,请确保你了解DLL的使用方法和要求,并按照其提供的文档进行调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值