unity3D技术分享

Unity调用自定义的DLL以及C#调用Unity的DLL

2017-06-26  本文已影响937人  wang_liang

一、创建DLL

打开VS,文件 > 新建 > 项目


新建项目.png

点击确定,编辑代码

using System;
namespace MyDll
{
  public class Tip
  {
    public static string GetText()
    {
      return "hello world";
    }
  }
}

生成dll,如图

image.png
生成的dll文件的路径在你的工程文件下的\bin\Debug\xxx.dll
例如我的是在C:\Users\admin\Documents\visual studio 2015\Projects\MyDll\MyDll\bin\Debug\MyDll.dll
PS:也可以用MonoDeveloper创建并生成dll,至于操作步骤可以查看官网手册

二、导入DLL

在这一步操作之前需要注意在第一步创建项目时默认选择的是.Net Framework4.5.2,我用的Unity版本是5.4.3,支持的.NET Framework的版本为3.5,需要修改一下,在VS里项目>MyDll属性 如图


改dll属性.png
image.png

这样dll的生成才算是完成了,如果不进行这步直接放到Unity里当然会报错,如图


dll属性未修改的报错
接着重新生成一下dll文件,重新导入到Unity的Pugins文件夹下就行了。

三、调用DLL

在Unity新建一个TestDll的脚本,并挂到主摄像机上,脚本代码如下:

using UnityEngine;
using MyDll;//引入dll
public class TestDll : MonoBehaviour
{
  void Start()
  {
    Debug.Log(Tip.GetText());
  }
}

注意,调用Dll中的方法一定要使用using语句引入导入到unity中的dll类库。using MyDll;

C#引用Unity原生类库

Unity类库在Mac上的路径为Applications/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll
在Windows上的路径为
Program Files\Unity\Editor\Data\Managed\UnityEngine.dll

项目>添加引用>浏览>根据路径找到UnityEngine.dll,还有很多其他的dll

image.png
删除多余的引用.
引入dll后,代码就可以用了,使用dll用using UnityEngine;这样就可以用这个dll库下的内容了例如
using System;
using UnityEngine;//引入dll
namespace MyDll
{
  public class Tip
  {
    public static string GetText()
    {
      return "hello world";
    }
    public static void UnityDllTest()
    {
      Debug.Log(123);
      GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
    }
  }
}

Debug,GameObject等都可以使用了

上一篇下一篇

猜你喜欢

热点阅读