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

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.lryc.cn/news/323855.html

相关文章:

  • Matlab使用教程(持续更新)
  • 管理能力学习笔记一:角色转身
  • Redis面试题 概要
  • 原型,模板,策略,适配器模式
  • Ollama 在本地快速启动并执行LLM【大语言模型】
  • ubuntu : 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
  • 瑞芯微RK3576|触觉智能:开启科技新篇章
  • Visual Studio 2013 - 清理
  • 1、初识JVM
  • JavaScript 权威指南第七版(GPT 重译)(七)
  • 从零开始搭建游戏服务器 第四节 MongoDB引入并实现注册登录
  • 【Unity】宏定义Scripting Define Symbols
  • 算法 之 排序算法
  • Prism:打造WPF项目的MVVM之选,简化开发流程、提高可维护性
  • Springboot+vue的四川美食分享网站+数据库+报告+免费远程调试
  • 温湿度项目V1.0——原理图设计
  • H5 与 App、网页之间的通信
  • 亚马逊云科技:企业如何开启生成式AI之旅?
  • AMPQ和rabbitMQ
  • 在存在代理的主机上,为docker容器配置代理
  • 备考ICA----Istio实验4---使用 Istio 进行金丝雀部署
  • LeetCode-热题100:39.组合总和
  • 演讲嘉宾公布 | 智能家居与会议系统专题论坛将于3月28日举办
  • Unity发布webgl之后打开PDF文件,不使用js,不和浏览器交互
  • Python之装饰器-无参装饰器
  • 音视频实战--音视频编码
  • 【黄金手指】windows操作系统环境下使用jar命令行解压和打包Springboot项目jar包
  • React【Day1】
  • MNN 执行推理(九)
  • 算法公式汇总