Unity Adressables 使用说明(七)诊断工具(Diagnostic tools)

news2024/12/30 1:56:52

Addressables 包含诊断工具,用于分析你的 Addressables setup、performance 和 build result 。

Addressables Profiler Module

Addressables Profiler 是一个 Unity 编辑器 Profiler 模块,可以用来了解从 Addressables 加载的内容。

前提条件

  1. 必须启用构建报告(Build Reports),并且需要运行时的构建报告。要启用构建报告,请转到Editor preferences,选择 Addressables preferences ,然后启用Debug Build Layout
  2. 收集运行内容的信息需要调试构建布局的构建时数据收集信息。这些文件存储在 <Project Directory>/Library/com.unity.addressables/buildReports 文件夹中。每次构建都会在该目录中创建一个新的构建报告文件。运行 Profiler 时,任何来自 Profiler 目标的 Profiler 数据将同步,并在 buildReports 文件夹中查找该运行时的构建报告文件。如果构建报告不存在(例如项目是在不同机器上构建的),Profiler 将不会显示该数据的信息。选择“在文件系统中查找”可以打开文件选择窗口,你可以使用它在磁盘的其他位置定位构建报告文件。
  3. Profiler 运行需要 Unity Profiling Core API 包。要安装此包,可以通过包管理器或在启用Debug Build Layout时通过 Addressables 偏好设置窗口进行安装。
  4. Profiler 模块不支持Play Mode Scripts Use Asset Database (Fastest)。内容必须构建并使用Use Existing Build based Play Mode Scripts”。

打开 Profiler 模块

要打开 Addressables Profiler :

  1. 打开 Profiler 窗口(Window > Analysis > Profiler)。
  2. 在 Profiler 窗口的右上角,选择名为Profiler Modules的下拉按钮。
  3. 启用名为Addressable Assets的选项。

查看模块

模块视图(module view)可用于观察在某一帧中加载了多少 AssetBundles、Assets、Scenes 和 Catalog 。

下图显示了一个目录中的三个资源和一个场景,以及六个 AssetBundles:
在这里插入图片描述

选择某一帧时,详细窗格(detail pane)会填充该帧的信息,并显示加载内容的树视图。

要更改显示的内容,请选择详细窗格工具栏中的下拉按钮View
在这里插入图片描述

它有以下选项:

  • Groups:在树视图中包含组。
  • Asset Bundles:在树视图中包含 AssetBundles。
  • Assets:在树视图中包含资源。
  • Objects:在树视图中包含资源内加载的对象。
  • Assets not loaded:显示在加载的 bundle 中但未主动加载的资源。

详细窗格有两个区域。左侧是内容的树视图,显示加载的内容,可以展开以显示详细内容。右侧是详细信息检查器,显示从树视图中选择的内容的详细信息。

Content Tree View

你可以根据个人喜好启用或禁用树视图列。在树视图标题上右键单击以显示可用列的列表。

每列根据行中的内容显示信息:

列名描述
Name根据类型,显示以下内容:组名、AssetBundle 文件名、资源地址或资源路径(如果未使用地址)、对象名或场景的资源类型。
Type资源或对象的类型。
Handles主动持有内容的 Addressables 句柄数量,通常称为引用计数。加载期间有一个附加句柄到内容。
Status内容在该时间的状态,可以是:Queued(排队中)、Downloading(下载中)、Loading(加载中)、Active(活动)、Released(释放)。
%如果StatusDownloadingLoading,则显示下载或加载操作的百分比进度。
Source显示 AssetBundle 的加载来源:Local(本地)、Cache(缓存)、Download(下载)。
Refs By引用该内容的元素数量。
Refs To该内容引用的元素数量。

释放的资源(Released assets)

从 Addressables 释放内容后,它可能仍在内存中,直到所有内容从 AssetBundle 释放,以及任何依赖该 AssetBundle 中任何资源的其他 AssetBundle 也被释放。

释放的内容在内容树视图中以淡出或灰色字体颜色表示。有关 Addressables 如何 Memory management 的更多信息,请参阅内存管理。

筛选内容(Filter Content)

可以使用详细窗格中的搜索栏筛选内容名称。可以使用搜索过滤语法查找其他内容:

  • Handles: h
  • Type: assetType, t
  • Status: s
  • RefsTo: rt, r
  • RefsBy: rb, p
  • Source: bundlesource, bs, b

过滤语法为 <tag>:<evaluation>,其中字段是数字字段,例如handles:3。默认的等于为=。可以通过在数字前包含符号来更改等于关系为大于>或小于<,例如Handles:>2

可以使用不带空格的列名或带有缩写 Label 进行筛选。

还可以使用类型过滤器按包含类型筛选。使用explicit表示通过 Addressables 显式包含在组中的资源,或 implicit 表示资源由于其他包含的引用而包含在 AssetBundle 中。例如,type:explicit

Inspect Content Details

选择 Addressables Profiler 模块中的内容时,检查器会显示该内容的详细信息,如下所示:
Selected content in the Inspector

Section描述
Selection Details (A)包含详细信息,包括资源的来源、加载路径、压缩格式和组。
Help (B)包含信息,包括任何设置的提示。
References ©包含有关引用到和从其他 AssetBundles 的信息。

Build layout report

Build layout report 提供有关 Addressables builds 的详细信息和统计数据,包括:

  • AssetBundles 的描述
  • 每个 Asset 和 AssetBundle 的大小
  • 非 Addressable 资产作为依赖项隐式包含在 AssetBundles 中的解释。更多信息请参阅 Asset and AssetBundle dependencies 。
  • AssetBundle dependencies

启用后,Addressables build 脚本会在构建 Addressables 内容时创建报告。您可以在 Preferences window 的 Addressables 部分启用该报告。您可以在项目文件夹中的 Library/com.unity.addressables/buildlayout位置找到报告。生成报告会增加构建时间。

有关构建内容的更多信息,请参阅 Building your Addressable content。

Create a Build Report

创建 build report 的步骤如下:

  1. 打开 Unity Preferences 窗口(菜单:Edit > Preferences)。
  2. 从偏好类型列表中选择 Addressables
  3. 启用 Debug Build Layout 选项。
  4. 进行 Addressables 内容的完全构建。有关完全构建的更多信息,请参阅 Full builds。
  5. 在文件系统窗口中,导航到 Unity 项目的 Library/com.unity.addressables/ 文件夹。
  6. 在文本编辑器中打开 buildlayout 文件。

Report data

Build layout report 包含以下信息:

Summary section

提供构建的概述。

NameDescription
Addressable Groups构建中包含的组的数量。
Explicit Assets Addressed构建中 Addressable 资产的数量(不包括由 Addressable 资产引用但未标记为 Addressable 的资产)。
Total Bundle构建创建的 AssetBundles 数量,包括包含 Scene 数据的数量。
Total Build Size所有 AssetBundles 的总大小。
Total MonoScript Size序列化 MonoBehaviour 和 SerializedObject 实例的大小。
Total AssetBundle Object Size所有 AssetBundle 对象实例的大小。
Group section

报告 Addressables 如何将组中的资产打包到 AssetBundles 中。

NameDescription
Group summary组的名称、为组创建的 bundle 数量、总大小以及为组构建的显式资产数量。
Schemas组的架构和设置。
Asset bundles请参阅 AssetBundle 信息。
AssetBundle Information

报告为组构建的每个 AssetBundle 的详细信息。

NameDescription
File nameAssetBundle 的文件名。
SizeAssetBundle 的大小。
Compressionbundle 使用的压缩设置。
Object size
Bundle Dependencies当前 bundle 依赖的其他 AssetBundles 列表。这些 bundles 总是与当前 bundle 一起加载。
Expanded Bundle Dependencies
Explicit Assetsbundle 中包含的 Addressables 的资产信息。
FilesAssetBundle 存档中的文件信息。场景 bundle 每个场景最多包含两个文件,非场景 bundle 仅包含一个文件。
Asset information

提供 Explicit Assets 部分中每个资产的信息。

NameDescription
Asset path项目中资产的路径。
Total Size
Size from Objects
Size from Streamed Data
File IndexAssetBundle 中包含此资产的文件索引。
Addressable Name资产的地址。
External References
Internal References
File Information

提供 AssetBundle 存档(Archive)中每个序列化文件的详细信息。

NameDescription
File summary文件列表中的索引,文件中序列化的 MonoScripts 数量和大小。
File sections序列化文件可以有以下一个或多个部分:No extension、.resS、.resource、.sharedAssets。
Data from Other Assets文件中资产引用的依赖资产。
Built-in bundles

列出 Addressables 从资产中创建的任何 bundle,例如默认着色器,作为 Unity 引擎的一部分提供。Addressables 构建在需要时将此类资产放入单独列出的 bundle 中,以避免在多个 bundle 中重复这些资产作为隐式依赖项。

Build profile log

Addressables 构建过程总是创建一个 .json 日志文件,包含构建性能信息。你可以在项目文件夹中的 Library/com.unity.addressables/AddressablesBuildTEP.json 找到该日志文件。

可以使用 Google Chrome 或其他基于 Chromium 的浏览器中的 chrome://tracing 工具查看该日志文件。
A sample log file displayed in chrome://tracing

View the build profile

  1. 打开一个基于 Chromium 的浏览器。
  2. 在浏览器中输入 chrome://tracing 以打开 Trace Event Profiling Tool 。
  3. 点击 Load 按钮。
  4. 在文件浏览器中导航到你的 Unity 项目的 Library/com.unity.addressables 文件夹。
  5. 打开 AddressablesBuildTEP.json 文件。

有关构建性能日志的更多信息,请参阅 Unity Scriptable Build Pipeline。

【参考】Addressables Report Window

Addressables Report 是一个工具,你可以用它来深入查看 Addressables Build 中构建的内容信息。

要打开 Addressables Report 窗口,前往 Window > Asset Management > Addressables 并选择 Addressables Report

先决条件

  • Addressables Report 还需要由 Addressables 构建生成的 build report 才能运行。要启用构建报告的生成,前往 Edit > Preferences > Addressables 并启用 Debug Build Layout
  • 默认情况下,Addressables Report 会在每次构建后自动打开。要禁用此功能,前往 Edit > Preferences > Addressables 并禁用 Open Addressables Report After Build

Addressables Report 窗口概览

Addressables Report window

Addressables Report 窗口具有以下视图:

视图描述
Summary tab显示 Addressables 构建及其内容的高级概述。
Explore tab显示作为 Addressables 构建一部分构建的所有内容的详细细分。
Potential Issues tab扫描当前构建报告中的可能影响构建性能或其他不理想的潜在问题。
在 Addressables Report 窗口顶部选择 tab 以在视图之间切换。

左侧边栏面板包含项目中检测到的所有构建报告的列表。选择侧边栏中的构建报告以在 Addressables Report 窗口中加载该报告。

右侧边栏是 Inspector Panel ,你可以在 Explore 或 Potential Issues 视图中查看有关资产或 AssetBundle 的详细信息。

在 Build Report 窗口中使用搜索栏在 Explore 和 Potential Issues tab 中进行搜索。这将按搜索栏中的文本过滤当前视图中的所有资产。

Summary tab

Summary tab 显示选定构建报告的信息,以及有关构建中检测到的潜在问题的信息。它包括以下部分:

  • General Information:包括构建创建的 catalogs 位置、当前构建使用的 profile、构建所用时间,以及创建构建的 Addressables 包和 Unity Editor 的版本。
  • Potential Issues:包含 Potential Issues tab 中的问题摘要。
  • Aggregate Information:显示作为构建一部分创建的 AssetBundles 数量、构建的 bundles 大小以及构建中的资产数量。资产数量包括由 Addressable 资产引用但未标记为 Addressable 的资产。这些资产必须包含在构建中,以允许加载依赖它们的资产。

如果不同 bundles 中的多个 Addressable 资产依赖于同一个非 Addressable 资产,则该非 Addressable 资产将在多个 bundles 中重复。有关重复资产的更多信息,请参阅 Duplicated Assets View。

Explore Tab

Explore tab 包含选定构建报告的详细信息。使用View By下拉菜单更改在构建报告中资产的组织方式。

可以按以下方式对 Explore View 进行排序:

视图描述
AssetBundles显示作为 Addressables 构建一部分构建的所有 AssetBundles。展开一个 AssetBundle 以显示该 bundle 包含的资产。这是默认视图。
Assets显示作为 Addressables 构建一部分构建的所有资产。展开一个资产以显示所有依赖于该资产的资产和 AssetBundles。
Labels显示作为 Addressables 构建一部分构建的所有资产,按附加到资产的 label 排序。展开一个资产以显示依赖于该资产的资产和 AssetBundles 。
Groups显示作为 Addressables 构建一部分构建的所有 AssetBundles,按生成该 bundle 的 Group 进行排序。如果你使用 Pack Together By Label 或 Pack Separately 组设置,一个组可能会生成多个 AssetBundles。

在 Explore Tab 中选择一个资产时,其信息会显示在 Inspector 面板中。

Potential Issues Tab

Potential Issues tab 扫描选定的构建报告中的潜在问题或问题,这些问题可能在构建过程中发生。你可以查看这些问题可能发生的原因。它具有以下视图:

  • Duplicated Assets View:显示构建中在多个 bundles 之间重复的所有非 Addressable Assets 的列表。这发生在两个 Addressable 资产位于不同的 bundles 中,但都引用了一个未标记为 Addressable 的公共资产时。

要解决这些问题,可以将 Addressable Assets 移动到同一个 bundle 中,或使 Assets 成为 addressable。两种方法都会对构建依赖关系产生影响。通常应使用最小化资产重复影响的方法。

在 Potential Issues Tab 中选择一个资产时,会在 Inspector 面板中打开其信息。

【参考】Addressables Report Inspector

你可以使用 Inspector 查看任何特定资产或 AssetBundle 的深入信息。当你在 Explore 标签或 Potential Issues 标签中选择一个资产或 AssetBundle 时,Inspector 面板会显示有关选定 Asset 或 AssetBundle 的信息。
在这里插入图片描述

Inspector 面板部分

Inspector 面板包含以下部分:

Summary Panel

使用此面板中的按钮执行以下操作:

  • Select in Editor:在 Unity Editor 中选择该 Asset 。
  • Select in Group:在 Explore 窗口的 Groups 视图中选择该 Asset 。如果你当前不在 Groups 视图,它将导航到该视图。
  • Select in Bundle:在 Explore 窗口的 AssetBundles 视图中选择该 Asset 。如果你当前不在 AssetBundles 视图,它将导航到该视图。
  • Search in this view:在搜索栏中搜索该资产的名称。
References Panel

References 面板有以下标签:

  • References To:包含选定项所依赖的所有资产和 AssetBundles 的列表。例如,如果你有一个引用了 shader 的材质,那么在 Explore 视图中选择材质时,shader 会出现在这个标签中。
  • Referenced By:包含依赖于选定项的所有资产和 AssetBundles 的列表。例如,如果你有一个引用了 shader 的材质,那么在 Explore 视图中选择 shader 时,该 shader 引用的材质会出现在这个标签中。
    在这里插入图片描述

在 References 面板中选择一个资产或 AssetBundle 旁边的箭头,以遍历顶级资产的依赖关系。例如,在上图中,Table 依赖于 bundle defaultlocalgroup_assets_all。选择箭头会显示生成此依赖关系的资产是 TableMaterial,并且 defaultlocalgroup_assets_all bundle 还包含另外三个不是 Table 依赖项的资产。

对于不是 Addressable 但被另一个 Addressable asset 引入 bundle 的 asset ,问号图标会显示在这些 asset 旁边。选择它以高亮显示同一 bundle 中引用该 asset 的所有 asset 。

参考

  1. com.unity.addressables
  2. github.com/Unity-Technologies/Addressables-Sample
  3. https://blog.unity.com/engine-platform/addressables-planning-and-best-practices
  4. Why use Addressables? - Unity Learn course.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】06.Z字形变换

题目要求 解题思路 首先映入我们脑海的就是暴力。这一方法可行&#xff0c;但是时间复杂度空间复杂度很高&#xff0c;因此我们使用找规律的方法。这样的话我们可以模拟插入下标&#xff0c;这样的话很容易发现首行和末行插入的位置刚好是d2*n-2&#xff0c;而中间行的两个位置…

Linux环境中安装java环境(JDK8环境)

需求背景&#xff1a; 给国产服务器&#xff08;银河麒麟V10&#xff09;中安装项目运行环境&#xff0c;安装java环境&#xff01;具体如下 下载jdk包 访问Oracle官网下载jdk包&#xff1a;Java Downloads | Oracle 中国 选择对应的cpu架构进行下载 https://download.csdn.…

OpenCV视频处理练习案例-学习篇

需要实现的功能&#xff1a; 用OpenCV打开一段视频&#xff0c;将每一帧画面压缩成540p&#xff0c;对画面进行垂 直翻转&#xff0c;转为黑白&#xff0c;然后添加高斯噪声&#xff0c;把处理好的每一帧画面保存 成一个mp4文件保存到本地 Python代码如下&#xff1a; impor…

第143天:内网安全-权限维持自启动映像劫持粘滞键辅助屏保后门WinLogon

案例一&#xff1a; 权限维持-域环境&单机版-自启动 自启动路径加载 路径地址 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\ ##英文C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动\ ##中文…

Tensorflow常见激活函数 -- Tensorflow自学笔记10

激活函数 激活函数是用来加入非线性因素的&#xff0c;因为线性模型的表达能力不够。引入非线性激活函数&#xff0c;可使深层神经网络的表达能力更加强大。 一. 什么是优秀的激活函数&#xff1f; 优秀的激活函数应满足: 1. 非线性: 激活函数非线性时&#xff0c;多层神经网…

泛微E9 Ecology9-JS应用高级进阶视频教程(重磅)

泛微E9 Ecology9【JS 应用】高级进阶视频教程震撼登场&#xff01;点击下载 引言&#xff1a; 随着企业数字化转型的深入&#xff0c;掌握泛微E9的高级开发技能已经成为众多IT技术人员和企业信息化从业者不可或缺的竞争优势。而作为泛微E9二次开发中的重要组成部分&#xff0…

AVL 树的旋转

什么是 AVL 树&#xff1f; AVL 树是一种自平衡二叉搜索树&#xff08;Binary Search Tree, BST&#xff09;&#xff0c;以其发明者 G. M. Adelson-Velsky 和 E. M. Landis 的名字命名。它的特点是对于任意一个节点&#xff0c;其左右子树的高度差&#xff08;平衡因子&#…

生成树协议(STP:802.1D、RSTP:802.1w、MSTP:802.1s)

在二层网络中&#xff0c;如果没有生成树协议&#xff0c;会带来哪些问题: 1、广播风暴 2、MAC地址表飘移 3、重复数据帧接收 回顾生成树有哪些术语: 1、根桥 为了破除环路&#xff0c;生成树网络首先要选举出一个首脑&#xff0c;头脑&#xff0c;首领。叫做根桥&#xff0c;…

信号有效带宽

根据傅里叶变换可以知道信号带宽是无穷大的&#xff0c;这对实际应用是帮助不大的&#xff0c;所以有了有效带宽的概念&#xff0c;可能大家知道常用的经验公式&#xff1a;O.35/Tr或者0.5/Tr等&#xff0c;那这个公式是怎么来的呢&#xff1f;有效带宽又是什么含义呢&#xff…

C++入门(01)VisualStudio2022社区版HelloWorld

文章目录 1. 下载社区版2. 安装3. 启动4. 创建新项目5. C空项目6. 项目名称和位置7. 创建后&#xff0c;出现“新增功能”&#xff0c;关闭即可8. 解决方案和项目9. 新建源文件10. 编辑第一个C程序11. 运行该程序12. Debug文件夹13. 用好Microsoft Learn 1. 下载社区版 访问&a…

C语言字面量和常量

目录 引言 1. 字面量 1.1 字符字面量 1.2 整型字面量 1.3 浮点字面量 2. 常量 2.1 使用预处理器指令 #define 定义常量 2.1.1 语法格式 2.1.2 使用举例 2.2 使用 const 关键字定义常量 2.3 使用 #define 和 const 定义常量的区别 引言 看了一些博文&#xff0c;有的文…

HarmonyOS(55) error: install releaseType target not same 解决方案

releaseType not same 问题现象解决方法参考资料 问题现象 在DevEco Studio 链接真机运行时发现如下错误&#xff1a; 09/06 08:40:45:905: Install Failed: error: failed to install bundle. code:9568258 error: install releaseType not same. 09/06 08:40:45:966: View …

集成电路学习:什么是SDK软件开发工具包

SDK&#xff1a;软件开发工具包 SDK&#xff0c;即Software Development Kit&#xff08;软件开发工具包&#xff09;&#xff0c;是一套由软件提供商或其他组织提供的开发工具集合。这些工具旨在帮助开发者更快速、更便捷地创建、测试和部署软件应用程序。以下是对SDK的详细解…

全国计算机二级考试C语言篇3——选择题

C语言部分——C语言概述 1.程序模块化的优点 程序模块化的优点在于它可以使程序的开发、维护和复用变得更简单。下面是一些主要的优点&#xff1a; 降低复杂度&#xff1a;模块化可以将复杂的问题分解成更小的、更易管理的部分。 可维护性&#xff1a;模块化使得代码更易于维护…

前缀列表(ip-prefix)配置

一. 实验简介 本来前缀列表是要和访问控制列表放在一起讲的&#xff0c;但是这里单拎出来是为了更详细的讲解两者的区别 1.前缀列表针对IP比访问控制更加灵活。 2.前缀列表在后面被引用时是无法对数据包进行过滤的 实验拓扑 二. 实验目的 R4路由器中只引入子网LoopBack的…

DFS算法专题(一)——二叉树中的深搜【回溯与剪枝的初步注入】

目录 1、DFS算法简介 2、算法实战应用【leetcode】 2.1 计算布尔二叉树的值 2.1.1 算法原理 2.1.2 算法代码 2.2 求根节点到叶节点数字之和 2.2.1 算法原理 ​2.2.2 算法代码 2.3 二叉树剪枝 2.3.1 算法原理 2.3.2 算法代码 2.4 验证二叉搜索树 2.4.1 算法原理 …

紫微斗数算法的实现流程

题外话 我想了又想大凡能够修炼成绝世高手的都是“魔鬼”。只有魔鬼才会纯粹的“敢贪&#xff0c;敢嗔&#xff0c;敢痴”。 你我都困在了敢字。程序猿拿起拿锋利的刀&#xff0c;解构世间的一切吧&#xff01;最近看西游有感而发。 “联系是普遍存在的&#xff0c;规律是客观…

我开源了我的新闻网站项目

&#x1f389; 前言 暑假时写了一个Web项目&#xff0c;感觉做的还是有模有样的&#xff0c;不仅做了前端&#xff0c;还加了后端并连了数据库。最近也是将它开源了&#xff0c;一来是为了熟悉一下Github流程和Git使用命令&#xff0c;二来也是想和大家分享一下自己的成果&…

[阅读笔记]《解读基金—我的投资观与实践》— 季凯帆

&#x1f4e2;博客主页&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 丶布布原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&#x1f4e2;现…

java环境变量怎么调

java 环境变量配置是设置系统查找和使用 java 工具的路径。通过以下步骤配置&#xff1a;安装 java jdk。设置 path 变量&#xff0c;添加 java 可执行文件目录路径。设置 java_home 变量&#xff0c;指定 jdk 安装目录路径。验证配置&#xff0c;运行 "java -version&quo…