当前位置: 首页 > article >正文

Unity构建详解(2)——SBP的初始设置和脚本编译

【SwitchToBuildPlatform】

核心逻辑如下

EditorUserBuildSettings.SwitchActiveBuildTarget(m_Parameters.Group, m_Parameters.Target);

直接调用切换平台的接口,一般来说,这个步骤不会执行,我们打包时肯定会事先将平台切换好的

【RebuildSpriteAtlasCache】

核心逻辑如下

SpriteAtlasUtility.PackAllAtlases(m_Parameters.Target);

也是直接调用unity提供的接口,重新打包图集,这一步也可以完全自己做,一般会根据项目的实际情况,自己做图集打包。

【BuildPlayerScripts】

编译源代码,生成TypeDB类型的ScriptInfo。TypeDB(类型数据库)是一个用于存储所有类型信息的数据库。

TypeDB包含了Unity中所有的类、结构体、枚举、委托,类的名称、命名空间、父类、成员变量、方法等信息,它是Unity的一个核心组件,可以用来进行反射和序列化等操作,可以通过C#代码或Unity编辑器中的各种工具来访问和修改。

核心代码为

PlayerBuildInterface.CompilePlayerScripts(m_Parameters.GetScriptCompilationSettings(), m_Parameters.ScriptOutputFolder);

这里步骤是可选得,在BuildApp时做,其可以用增量缓存,会生成一系列的文件和Dll,如果有缓存,可以直接读取。输出路径是配置项,默认值为"Library/PlayerScriptAssemblies"。

ScriptAssemblies文件夹中的dll时Editor下用的。

如果要自己编译程序集,也是用该接口。

编译的过程可以做可视化

【使用Native接口】

Native接口的实现都在C++,在C#调用C++用的是P/.Invoke机制。

一般来说参数和返回值都要是Blittable类型,稍微复杂点的会被封装成结构体,只有非常复杂的才会用类。

SBP中有很多调用Native接口的地方,会看到很多参数和返回值都是结构体。

编译脚本时的ScriptCompilationSettings和ScriptCompilationResult都是结构体


http://www.kler.cn/a/274676.html

相关文章:

  • 基于字节大模型的论文翻译(含免费源码)
  • ubuntu18.04升级到ubuntu20.04
  • RFdiffusion Sampler类 sample_step 方法解读
  • 使用Python开发高级游戏:创建一个3D射击游戏
  • PostgreSQL技术内幕21:SysLogger日志收集器的工作原理
  • RestTemplate实时接收Chunked编码传输的HTTP Response
  • 【自记录】VS2022编译OpenSSL1.0.2u
  • 电装DENSO 嵌入式岗笔试
  • Qt + HTTP 线程交互类封装
  • MNN createSession 之创建流水线后端(四)
  • 记录解决问题--activiti8.2 流程图图片由png改为svg前端不显示图片问题
  • word excel ppt转pdf
  • 常见传感器的原理 和 常见滤波算法实现
  • 开源模型应用落地-安全合规篇-模型输出合规性检测(三)
  • Bert的一些理解
  • 同步方法和同步块,哪个是更好的选择?什么是线程同步和线程互斥,有哪几种实现方式?
  • (简单成功)Mac:命令设置别名
  • 原生html vue3使用element plus 的树tree上移下移案例源码
  • 轻松解锁微博视频:基于Perl的下载解决方案
  • java算法题每日多道
  • 行业模板|DataEase制造行业大屏模板推荐
  • Angular进阶之八: Angular Animation在项目中的实践经验
  • 【leetcode热题】二叉搜索树迭代器
  • Rust 中Self 关键字的两种不同用法
  • 微信小程序 canvas层级过高覆盖原生组件
  • Linux 服务升级:MySQL 主从(半同步复制) 平滑升级