软件编程
位置:首页>> 软件编程>> C#编程>> Unity打包代码到DLL的实现

Unity打包代码到DLL的实现

作者:[奋斗不止]  发布时间:2022-06-28 08:38:17 

标签: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);
       }
   }

}

Unity打包代码到DLL的实现

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

Unity打包代码到DLL的实现

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

Unity打包代码到DLL的实现

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

Unity打包代码到DLL的实现

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

Unity打包代码到DLL的实现

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

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

Unity打包代码到DLL的实现

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

来源:https://blog.csdn.net/LIQIANGEASTSUN/article/details/129346814

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com