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);
}
}
}
点击 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 的来源
来源:https://blog.csdn.net/LIQIANGEASTSUN/article/details/129346814


猜你喜欢
- 自定义类:using System;using System.Collections.Generic;using System.Linq;u
- 现在的智能手机不敢说百分百的都是触摸屏,也应该是百分之九九以上为触摸屏了,触摸屏为我们操作无键盘、无鼠标的手机系统带来了很多的便利。当用户触
- 本文实例讲述了Java Swing中JList选择事件 * ListSelectionListener用法。分享给大家供大家参考,具体如下:
- IDEA自动跳出括号并且补全分号(类似eclipse的功能)跳括号外头去ctrl shift enter叫做 Complete Curren
- 最近找了一些资料,是讲在C#中设置快捷键运行方法或程序的 要设置快捷键必须使用user32.dll下面的两个方法。 BOOL Re
- 这篇文章主要介绍了Spring @Transactional注解失效解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 自动去除图像扫描黑边/// <summary>  
- 引言ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设
- 和室友参加的互联网大赛要做一个 APP,涉及到用户的登录注册,于是上网找了许多资料,其中有阿里大于,网易云等等,阿里大于的客服给我说他们不支
- 定义在类里面的类就叫做内部类。内部类的特点:在内部类中可以直接访问外部类的成员,包括私有的成员在外部类中不能直接访问内部类的成员,必须通过创
- 本文实例为大家分享了Android仿微信录制语音的具体代码,供大家参考,具体内容如下前言我把录音分成了两部分1.UI界面,弹窗读秒 2.一个
- 本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法,分享给大家供大家参考之用。具体方法如下:以web项目为例:一:给类加注释1.
- 本文实例总结了Android实现计时与倒计时的常用方法。分享给大家供大家参考,具体如下:方法一Timer与TimerTask(Java实现)
- 一.Unsafe类的源码分析JDK的rt.jar包中的Unsafe类提供了硬件级别的原子操作,Unsafe里面的方法都是native方法,通
- 我就废话不多说了,大家还是直接看代码吧!public static String mapToTxt(Map<String,String
- 简介在文章《GraalVM和Spring Native尝鲜,一步步让Springboot启动飞起来,66ms完成启动》中,我们介绍了如何使用
- 作用mybatis-plus接口mapper方法中的注解(如@Select)或者xml(如)传入的参数是通过#{param}或者${para
- 一、前言:前段时间微信更新了新版本后,带来的一款H5小游戏“跳一跳”在各朋友圈里又火了起来,类似以前的“ * ”游戏,这游戏玩法简单,但加上
- Android 自定义标题栏的实例详解开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标
- 其实是可以通过@Constraint来限定自定义注解的方法。@Constraint(validatedBy = xxxx.class)下面是