Unity打包代码到DLL的实现

 更新时间:2023年03月09日 09:12:19   作者:[奋斗不止]  
本文主要介绍了Unity打包代码到DLL的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用Unity API PlayerBuildInterface.CompilePlayerScripts 将项目中的代码生成为 DLL 程序集

在 Editor 文件夹下新建脚本 CompileDll

using UnityEngine;
using UnityEditor;
using UnityEditor.Build.Player;
using System.IO;

public class CompileDll
{
    // 菜单栏添加按钮
    [MenuItem("Tools/CompileDll")]
    static void Compile()
    {
        // 设置需要打DLL 的平台 
        BuildTarget target = BuildTarget.StandaloneWindows64;
        ScriptCompilationSettings scriptCompilationSettings = new ScriptCompilationSettings();
        scriptCompilationSettings.group = BuildPipeline.GetBuildTargetGroup(target);
        scriptCompilationSettings.target = target;

        // 获取 dll 输出目录
        string outDir = Application.dataPath;
        outDir = outDir.Substring(0, outDir.IndexOf("Assets"));
        outDir = string.Format("{0}DLL", outDir);
        if (!Directory.Exists(outDir))
        {
            Directory.CreateDirectory(outDir);
        }

        // 编译DLL
        ScriptCompilationResult scriptCompilationResult = PlayerBuildInterface.CompilePlayerScripts(scriptCompilationSettings, outDir);
        foreach(var ass in scriptCompilationResult.assemblies)
        {
            Debug.LogFormat("compile assemblies:{0}/{1}", outDir, ass);
        }
    }

}

在这里插入图片描述

点击 Tools->CompileDll 按钮,在 代码中 outDir 目录下生成所有 dll 以及 对应的 .pdb

在这里插入图片描述

如上 DLL 程序集是如何确定名字的?
如上 AA.dll
在 需要生成 AA.dll 的 C# 脚本目录下,新建 AA.asmdef
在 C# 脚本所在目录 右键 Create -> Assembly Definition

在这里插入图片描述

然后生成一个 .asmdef 的文件,选择文件在 Inspector 面板输入名字

在这里插入图片描述

然后在 AA.asmdef 目录新建一个 Npc.cs

在这里插入图片描述

选择 Npc.cs 看 Inspector 面板可以看到 Npc.cs 归属于 AA.dll 程序集
具体细节可以学习了解 Unity asmdef 文件的创建以及作用

在项目中任意选一个 C# 脚本,都可以在 Inspector 面板看到它归属的 dll 程序集

在这里插入图片描述

这就是上面执行编译导出的 dll 的来源

到此这篇关于Unity打包代码到DLL的实现的文章就介绍到这了,更多相关Unity打包代码到DLL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c#固定长度的随机字符串例子

    c#固定长度的随机字符串例子

    c#固定长度的随机字符串例子,需要的朋友可以参考一下
    2013-04-04
  • 深入多线程之:深入生产者、消费者队列分析

    深入多线程之:深入生产者、消费者队列分析

    本篇文章是对生产者与消费者队列进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#中Dictionary与List的用法区别以及联系详解

    C#中Dictionary与List的用法区别以及联系详解

    List和Dictionary想必是我们平常用到最多的C#容器了,他们使用起来都很简单,这篇文章主要给大家介绍了关于C#中Dictionary与List的用法区别以及联系的相关资料,需要的朋友可以参考下
    2023-11-11
  • Unity的AssetPostprocessor之Model函数使用实战

    Unity的AssetPostprocessor之Model函数使用实战

    这篇文章主要为大家介绍了Unity的AssetPostprocessor之Model函数使用实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C#实现对AES加密和解密的方法

    C#实现对AES加密和解密的方法

    C#实现对AES加密和解密的方法,需要的朋友可以参考一下
    2013-04-04
  • C#留言时间格式化

    C#留言时间格式化

    本文给大家分享的是仿微博或者空间中,发布内容之后提示NN秒之前留言的代码,主要是通过发布时间和当前时间直接的差值来计算,十分的简单实用,有需要的小伙伴可以参考下。
    2015-05-05
  • C#使用Dll的几种方法示例

    C#使用Dll的几种方法示例

    使用 DLL(动态链接库)是 C# 开发中常见的任务之一,DLL 文件包含可以在运行时加载的代码和数据,允许程序共享功能和资源,降低程序的内存占用并促进代码的复用,本篇文章将深入探讨 C# 中使用 DLL 的多种方法,并提供相关代码示例,需要的朋友可以参考下
    2024-10-10
  • FTPClientHelper辅助类 实现文件上传,目录操作,下载等操作

    FTPClientHelper辅助类 实现文件上传,目录操作,下载等操作

    这篇文章主要分享了一个FTPClientHelper辅助类和介绍了常用的FTP命令,需要的朋友可以参考下。
    2016-06-06
  • C#基于Modbus三种CRC16校验方法的性能对比

    C#基于Modbus三种CRC16校验方法的性能对比

    这篇文章主要介绍了C#基于Modbus三种CRC16校验方法的性能对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • C#数据导入到EXCEL的方法

    C#数据导入到EXCEL的方法

    今天小编就为大家分享一篇关于C#数据导入到EXCEL的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论