zoukankan      html  css  js  c++  java
  • Unity中调用DLL库

    DLL —— Dynamic Link Library(动态链接库文件),这里以Window平台为例。

    Unity支持的两种语言生成的DLL库(C++、C#),这里以C#为例,C++网上可以搜索很详细的资料。

    1) 添加引用关系

    如果有对UnityEngine、UnityEditor的引用,需要先添加引用关系。

    image

    路径通常位于Unity安装目录下的Editor/Data/Managed路径下。

    2) 生成DLL文件

    建立项目时,选择“类库”。目标框架.Net Framework的版本,只能选择3.5及以下版本

    image

    3) 在项目中引用DLL文件

    Unity会自动加载相应的DLL文件,所以DLL文件只要存放于Assets目录下即可,当然为了统一管理,一般放在Plugins目录下。

    这里有一个需要注意的点,如果DLL文件放在Editor下,那么只能是Editor目录下的C#文件才可以引用,如果想在项目运行时的C#中进行引用,那DLL文件就不能放在Editor目录下。以上目录只与名字相关,与层级无关,路径可以是Assets/a/b/c/d/e/../XX.DLL

    放置好DLL后,注意刷新Visual Studio中的解决方案。

    参考链接:

     在 Unity 工程 (Project) 中使用 DLL(动态库)

     unity中调用dll文件总结

    在Unity3D里使用DLL

    如何查看DLL中的方法是否已经导出呢?

    C#:dnSpy

    C++:depends

    理解如何使用之后,我们做一个示例:在Unity加载并解析Excel文件。这里用的库是 EPPlus ,使用的版本是3.5

    image

    假设我们只会在编辑器中使用,那么可以将DoNet35目录下的二个文件,放到这样的目录中:ThirdParty/EPPlus/Editor  这样就只有编辑器里才能使用到这个类库。使用方法也很简单

    ExcelPackage package = new ExcelPackage(new FileInfo(filePath));
    
    List<string> keys = new List<string>();
    List<string> values = new List<string>();
    
    ExcelWorksheet sheet = package.Workbook.Worksheets[1];
    int rows = sheet.Dimension.Rows;
    for (int row = 2; row <= rows; row++)
    {
        string key = sheet.Cells[row, 1].Value.ToString();
        string value = sheet.Cells[row, 2].Value.ToString();
    
        keys.Add(key);
        values.Add(value);
    }
    
    //

    在Unity中能读取excel就很方便了,这样就比较方便地做技能编辑器、加载数据配置、提取游戏中的文字等。

  • 相关阅读:
    linux 扩展权限
    一篇文章搞懂装饰器所有用法(建议收藏)
    python中yield的用法详解——最简单,最清晰的解释
    Django-用户权限,用户角色使用指南
    Django 之瀑布流实现
    Git 命令将电脑上的文件上传到 Github
    Day23-Model操作,Form操作和序列化操作
    django 内置“信号”机制和自定义方法
    第四章:操作列表
    第二章:变量和简单数据类型
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/7601730.html
Copyright © 2011-2022 走看看