Unity 打包代码到 DLL

Posted [奋斗不止]

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 打包代码到 DLL相关的知识,希望对你有一定的参考价值。

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("0DLL", 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打包windows多屏窗口位置

unity3d 怎么打包dll

如何在unity中debug调试打包到VR头显的应用代码

Unity打包android时会出的一些问题

Unity中的一键打包实现

unity 打包 windows 运行 紫色 粉红色