当前位置:   article > 正文

Unity3D学习笔记10:Unity调用DLL_using unityengine dll

using unityengine dll

      在Unity3D的项目开发过程中,可能会使用一些以前别人写好的C#,Java,C++等文件,我们可以把它们做成动态链接库DLL文件在项目中进行调用,下面用一个简单的例子来说明怎么制作一个DLL文件并在Unity中使用它。

     首先新建一个Unity3D工程,我们命名为"Test",创建一个C#文件,命名为“DLLTest”,文件代码如下所示:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class DLLTest : MonoBehaviour {
  4. // Use this for initialization
  5. void Start () {
  6. }
  7. // Update is called once per frame
  8. void Update () {
  9. }
  10. public void Fun()
  11. {
  12. print("Hello World !");
  13. }
  14. }

      我们只是添加了一个公有函数“Fun”,函数的功能是输出“Hello World !”,然后我们把“DLLTest”文件复制出来,先暂时放在桌面即可。这时可以把Unity3D工程中的“DLLTest”文件删掉了。

      接下来在MonoDevelope中新建一个Solution,即重新建立一个解决方案,命名为“MyTest”,并放在D盘的Projects文件夹,方便以后找到它。步骤是点击File-->New-->solution..,选择C#选项卡下面的Library,然后填写项目名称和选择存放地址,如下图所示:

     

     点击OK,然后把我们之前放在桌面上的“DLLTest”C#文件导入到Solution中,首先确定右上角选择的是“Default”,,然后右键项目名“MyTest”,选择Add-->Add Files..,选择桌面的“DLLTest”即可,它会提示你以怎样的形式导入文件,移动还是复制,随便选一个即可。

      我们Build编译一下,有可能会出现一个.Net框架版本不符合的错误提示(如果没有这个错误则略过)。

         

     解决的方法也很简单,我们选中"MyTest"项目,点击菜单栏的“Project-->MyTest Options”,在弹出的对话框中选择General选项卡,在“Target framework”选项栏中选择合适的版本即可,我这里选择的是4.0,如下图所示:


       再Build编译一次,发现还是有错误,提示缺少命名空间,错误信息如下:


       这是因为缺少“UnityEngine.dll”文件,我们只需把它导入即可,那么这个文件在哪呢?我们把新建的Unity3D项目保存后导出为.exe文件,命名为“temp”那么在导出后的temp_Data文件夹下的Managed文件夹内就可以找到“UnityEngine.dll”文件。

       回到我们在MonoDevelop创建的"MyTest"项目,右键“References“文件夹,选择Edit References,然后选择.Net Assembly选项卡,找到刚刚的”UnityEngine.dll“文件并添加即可。如图所示:


      再Build一次,错误提示就没有了。然后我们打开项目地址,由于我之前保存在D盘的Projects文件夹,所以我的DLL文件存放目录是”D:\Projects\MyTest\MyTest\bin\Debug“,找到”MyTest.dll“并复制出   来,暂时放在桌面。

      打开Unity3D项目”Test“,把”MyTest.dll“文件拖到项目中,然后将MyTest下的DLLTest脚本组件拖到摄像机上,新建一个C#文件,拖到摄像机上,编写代码如下:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class NewBehaviourScript : MonoBehaviour {
  4. // Use this for initialization
  5. void Start () {
  6. //获得DLLTest组件
  7. DLLTest dll = camera.GetComponent<DLLTest>();
  8. //调用Fun函数
  9. dll.Fun();
  10. }
  11. // Update is called once per frame
  12. void Update () {
  13. }
  14. }

     运行,控制台打出”Hello World !“,则调用DLL文件成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/140722
推荐阅读
相关标签
  

闽ICP备14008679号