首页 > 代码库 > Unity3D调用Vc和Csharp dll
Unity3D调用Vc和Csharp dll
1.C#封装的dll
现在vs中创建一个类,里面只要写一个简单的静态类和静态方法就可以了,如下:
namespace pnsd{ public static class pn { public static string getName(string name) { return name; } }}
然后编译成dll文件,名字为pnsd.dll
2.在unity中使用自定义的C#封装的dll组件
在unity中创建一个Plugins文件夹,所有的外部引用的dll组件必须要放在这个文件下,才能被using
在C#脚本中用这个dll:
using UnityEngine;using System.Collections;using pnsd;//不是dll文件的名字,而是namespace的名字public class test:MonoBehaviour { void Start() { string name = pn.getName("pnsd");//类名.方法名 Debug.Log(name);//输出结果 }}
3. 首先用vc建立一个dll工程
4. 然后在里面建立一个testunity.h文件。内容如下
extern "C" int _declspec(dllexport)testunity(); // 定义道出接口
保存,ok,在建立一个testunity.cpp,代码如下:
#include "testunity.h"int testunity(){ return 0;//这是函数,里面可以写你想要实现的任何功能}
然后编译、组建。就生成了testunity.dll文件。
然后再把这个文件放在你的unity工程的assert的Plugins(如果没有这个文件,那你就要新建了)
然后在unity里面新建C#脚本文件dlltest。代码如下
using UnityEngine;using System.Collections;using System.Runtime.InteropServices;public class dlltest : MonoBehaviour
{ [DllImport ("testunity")] private static extern int testunity(); // Use this for initialization int i=testunity(); void Start () { print(i); } // Update is called once per frame void Update () { }}
然后再把这个文件在unity里面拖到camera里面就ok了。
然后运行,就可以实现效果了哈。
《如果是C#封装的dll,就用 using的方式引用,如果是C++的dll,就DllImport[".dll"]的方式来添加对dll的引用》
Unity3D调用Vc和Csharp dll
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。