就像使用.net自带的那些程序集一样。加入Reference,然后使用就可以。

因为windows环境下的Unity编译脚本时,本质上还是生成.net程序集。并且其C#脚本编程事实上就是.net C#语言编程。用Visual Studio 编写脚本project是,我们能够直观地看到Unityproject所引用的程序集。

既然能引用.net框架的程序集。自然也能引用自己编写的程序集。过程例如以下:

1、编写要引用的程序集。

我们差点儿能够编写不论什么用途的程序集。就像用C#开发.net类库一样。只是须要注意的是,假设要编写从Unity继承的类(比方从MonoBehaviour派生的组件等等),则不能使用namespace。眼下的Unity不支持。用了编译报错。

尽管不能使用namespace。但我实际測试后发现若新项目中创建了与引用的程序集同名的类,Unity编译并不会报错,并且实际运行也非常正常。

因为没有介绍Unity内部怎样编译的资料。我们还是尽量不要重名吧。

2、将程序集DLL放置到目标Unityproject的Asset文件夹下(这点非常重要)。

尽管能够用VisualStudio编写Unity代码,但实际上Unity生成游戏时还要自己再编译一遍。因此。在VS中的引用设置不能被Unity所使用。我以前尝试过把要引用的程序集放在GAC中也不行。正确的做法是把dll放在Asset下。Unity能非常好地识别它。

假设我们把组件编写在程序集中的话,展开程序集就能看到这些组件,甚至能够直接把它们拖动到GameObject中,非常强大吧!

3、在目标project中加入引用,编写代码。

这个没什么好说的。

4、測试通过,成功!

因为能够方便地使用程序集。Unity给我们的项目开发提供了更大的灵活性。也更便于组织实施软件project了。

Unity3D教程:静态调用C#的dll的更多相关文章

  1. 【VB技巧】VB静态调用与动态调用dll详解

    本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...

  2. Unity3d 调用C++的DLL

    原地址:http://www.cnblogs.com/alongu3d/archive/2013/04/20/3031904.html Unity 3D 调用DLL的方法 本文转载:渡蓝的博客园 ht ...

  3. C++调用DLL有两种方法——静态调用和动态调用

    C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报  分类: cpp(30)  [ ...

  4. dll静态调用和动态调用

    动态链接库有2种连接方式,一种是通过库直接加入(又叫隐式加载或载入时加载),一种是在运行时加入.后者很好理解,比如LoadLibrary(),GetProcAddress()获取想要引入的函数,使用完 ...

  5. Delphi 动态与静态调用DLL(最好的资料)

    摘要:本文阐述了 Windows 环境下动态链接库的概念和特点,对静态调用和动态调用两种调用方式作出了比较,并给出了 Delphi 中应用动态链接库的实例. 一.动态链接库的概念    动态链接库(  ...

  6. DLL DEF文件编写方法 VC++ 调用、调试DLL的方法 显式(静态)调用、隐式(动态)调用

    DLL 文件编写方法: 1.建立DLL工程 2.声明.定义要导出的函数 BOOL WINAPI InitDlg( HWND hTabctrl,TShareMem* pTshare,CRect* prc ...

  7. DLL的静态调用和动态调用

    // ------------------------------------DLL源代码 circle.dproj -------------------------------------libr ...

  8. 在Delphi中静态调用DLL

    在Delphi中静态调用DLL top 调用一个DLL比写一个DLL要容易一些.首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较.同样的,我们先举一个静态调用的例子. u ...

  9. C# 中静态调用C++dll 和C# 中动态调用C++dll

    在最近的项目中,牵涉到项目源代码保密问题,由于代码是C#写的,容易被反编译,因此决定抽取核心算法部分使用C++编写,C++到目前为止好像还不能被很好的反编译,当然如果你是反汇编高手的话,也许还是有可能 ...

随机推荐

  1. vue26-2.0循环

    3. 循环 2.0里面默认就可以添加重复数据 arr.forEach(function(item,index){ }); 去掉了隐式一些变量 $index $key 之前: v-for="( ...

  2. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  3. 多路径软件常用操作(MPIO)

    一:查看存储盘的路径 1. 查看MPIO的存储盘的路径 # lspath (适用于所有存储的MPIO路径查询) # mpio_get_config -Av (适用于DS3K/DS4K的MPIO路径查询 ...

  4. "getElementsByClassName is not a function" 报错原因

    element.getElementsByClassName(""): 返回的含有该类的子元素数组,除了子元素以外的后代元素是获取不到的.要遍历使用,或者.element.getE ...

  5. Python 值传递和引用传递

    值传递和引用传递 參考地址:http://www.dataguru.cn/thread-489552-1-1.html python的值传递不会改变传入參数的值,而引用传递传入的是一个地址.有点相似c ...

  6. dreamweaver 8的替换功能

    dreamweaver 8的替换功能 下面教你用dreamweaver 8的替换功能来删除这些冗余代码. 查找范围:文件夹(然后选取你需要替换的文件夹) 搜索:源代码查找:\btppabs=" ...

  7. 关于jquery的事件命名空间

    在多人协作的前端开发中,或许会遇到一个问题:几个开发人员都给一个元素添加了同样的事件,但是又有开发人员想要解除掉元素身上的某个事件效果,这时候操作起来就有些麻烦,需要用到jquery给我们提供的事件命 ...

  8. Android Error:(1, 0) Gradle version 2.2 is required. Current version is 3.4.1.

    我们在使用Android Studio的时候新建项目没什么问题的,但是当我们下载一份Github上的项目导入进去的时候却没法正常使用,其原因主要是gradle配置问题.而由于gradle这个玩意儿版本 ...

  9. ssh框架的总结

    一.spring:是基础,可以管理对象,也可以通过关键对象管理另一个框架.但是首先应该明确spring并不是只能应用于web方面,而是可以应用在一般的java项目中.只是如果在web环境下使用需要在w ...

  10. RLF。HRLF解释