【Unity】Asset Pipeline Version 2(Asset Database v2)内部细节

Unity的Asset Pipeline Version 2(Asset Database v2)详细介绍了AssetDatabase的改进,包括AssetDatabase.Refresh()的功能更新,资产扫描、分类、编译脚本、导入和后处理过程。此外,还探讨了Scriptable Build Pipeline的安装、用法示例和升级指南,以及如何通过Cache Server优化构建速度。文章强调了新功能对于提高工作效率和迭代时间的重要性。
摘要由CSDN通过智能技术生成

 

Asset Pipeline Version 2(Asset Database v2)

Unity 中存在四种管线(可能更多  别的我不知道):渲染管线,Build管线,Asset pipeline。  目前前两个都是可编程的。 

  • SRP :Universal Render Pipeline, High Definition Render Pipeline ( HDRP) ,       
  • SBP :Scriptable Build Pipeline
  • Script Compilation Pipeline 脚本编译管道  
  • Asset Pipeline : 也是Import Pipeline, Unity也有提供 导入前处理,后处理的API让开发者控制。

 Unity可能会为您想在游戏中使用的不同资产类型提供最全面的支持。Unity具有对模型文件,纹理文件,音频文件,视频文件和文本文件的多种文件格式的本机(内置)支持,

image.png

image.png

      上图中说的不对, 比如模型资源Maya 要导入Unity 需要:

image.png

        更具体的所有资源类型的导入和设置可以看:   文章内容较老~

 https://www.3dgep.com/introduction-to-unity-3-5-part-2/    

 

 

 

确实有人为这个东西, 但是现在文档确实很少!!!!!

https://forum.unity.com/threads/asset-pipeline-version-2.679366/#post-4548685

          新资产管道的第一部分于2019.2。使用与新的Asset管道一样大的功能通常需要多个版本,然后才能为所有人启用该功能。就是这种情况,我们在2019.2中完成了大部分基础工作,因此我们可以继续开发和测试功能的下一阶段,并使用进入2019.3的较小变更集。

 

2019.3博客文章指出:“一项新的实验功能是,您可以在Asset Pipeline中存储多个修订,这将大大改善平台在先前导入的资产版本之间的切换和交换switching and swapping。” –是我必须以某种方式启用的功能,还是“正常工作”?切换平台似乎并不比以前更快。

 

         不建议您启用新功能。管道,因为它几乎可以肯定对您的项目不起作用。我们确实保留了启用/禁用它的选项,因为我们一直在使用该标志自己测试新管道,并且将其标记为实验性指示其当前状态。

 

         如果一切按计划进行,我们将在2019.3上启用该标记,并使新管道成为将资产导入Unity的默认方式。今年9月,在哥本哈根Unite的新管道上将有更多信息。

https://forum.unity.com/threads/what-is-asset-database-v2.680170/

 

 

视频:  https://www.youtube.com/watch?v=S2P9n5U9xVw

AssetDatabase.Refresh() refresher - Unite Copenhagen

           AssetDatabase已被重写。 您越了解此API的工作原理,您的代码就越强大。 这些信息可以指导您制定自己的资产管理策略的决策。 例如,当您在平台之间跳转时,不需要重新导入资产。 在本课程中,您将对导入修改的资产和跟踪依赖关系有更深入的了解,以显着改善工作流程和迭代时间。

 

https://docs.unity3d.com/2020.1/Documentation/Manual/AssetDatabase.html  

 

视频内容:

  • 介绍新的 AssetDatabase
  • Refresh() 将会发生什么?
  • 平台的快速切换
  • ADB的提示和机巧

 

重写了 AssetDatabase ,   但是API和 V1版本一致。

有一些指导原则 Guiding Principles ,   针对  Determinism  和  Dependency tracking 。 确定性和依赖跟踪

 不会过多的讨论 Cache Server , 支持动态依赖关系

 

        术语:导入结果在 Library 文件夹下

       两个字母的文件夹是啥? 是资源名称的前两个字母。

image.png

 

 

任意的数据流的结果 是128位的哈希值。 

image.png

 

image.png

         有静态和动态的依赖关系。 

image.png

            什么是确定性, 就是相同的输入,肯定有相同的输出。 

下面的代码中有不确定的函数和确定的函数处理。             第一个函数在第二次执行的时候会失败,因为Move的目标路径已经有资源了。 所以确保目标路径不存在资源。 

image.png

 

-- 确保在导入资产时,由于所有依赖项都相同,因此导入结果相同

-- 跨机器相同

-- 对于远程缓存数据非常重要

image.png

 

关于 AssetDatabase 

AD 分为两个数据库 。

  • Source Asset Database 
  • Artifact Database

Memory mapped Database   内存映射数据库

交易性的,因此更难腐败

image.png

 

image.png

 

image.png

 

 

          有四种方式触发刷新~

image.png

自动刷新,    每当进入和退出Unity的时候 ,会从操作系统那得到一个窗口焦点事件, 那是一个C++ Native层。 通过C# 调用它, 这是唯一被强迫的方法,  同步脚本编译的含义,知道所有脚本被编译然后继续导入的过程

image.png

     菜单就是  Ctrl + R 刷新。

image.png

 

image.png

 

1、Scan 扫描:

            遍历 Assets 文件夹。   检测变化的文件, 如果改变了要对它重新哈希,并存储到数据库中。 

             还要枚举 packages 文件夹, 但他们有一个区别, 只对pachages做一次,因为认为是不可变的(只读)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值