obsidian/笔记文件/2.笔记/Unity性能优化_第四章.md
2025-03-26 00:02:56 +08:00

3.9 KiB
Raw Blame History

Unity IMGUI Debugger窗口

IMGUI Debugger窗口用于查看Unity编辑器中的IMGUI空间的信息。例如Scene窗口、Game窗口实际上也是用IMGUI写的我们可以查看其中IMGUI控件的信息。

如果我们在OnGUI方法中写了代码来显示IMGUI控件也可以在IMGUI Debugger窗口查看这个IMGUI控件的信息。

打开方法: 1、Window——Analysis——IMGUI Debugger 2、Alt+5

<Please Select>和它右边的下拉菜单中可以选择要查看哪些IMGUI控件。

Show Overlay。启用Show Overlay则选择IMGUI控件时能在Unity的编辑器中看到选择了哪个控件。

Force Inspect Optimized GUI Blocks。有时候Unity可能会对IMGUI进行优化把多个IMGUI控件合并为一个。此时如果我们要查看每一个IMGUI控件的信息则可以启用Force Inspect Optimized GUI Blocks

Pick Style。按住Pick Style然后在Unity的编辑器中选择一个IMGUI控件可以看到它的信息。

Unity Import Activity窗口

Import Activity可以查看项目中的资源的信息。例如什么时候导入这个资源的、这个资源的文件大小等。

打开方法: 1、Window——Analysis——Import Activity 2、右击一个资源点击View in Import Activity Window。 3、在Inspector窗口中右击Inspector点击Open in Import Activity Window。

官方文档:https://docs.unity3d.com/2021.2/Documentation/Manual/ImportActivityWindow.html

点击左上方的Show Overview可以看出项目中依赖最多的资源和导入时花费时间最长的资源。

    左上方Options的选项
    Use relative timestamps勾选后资源的最后导入时间会以“几小时前”、“几天前”这样的格式显示。取消勾选则资源的最后导入时间会以“日-月-年小时:分钟:秒”的格式显示。
    Show previous imports勾选后选中一个资源则会显示这个资源以前导入时的信息也能在Library文件夹中查看一个资源有多少个历史版本。但是要注意当Unity的AGCArtifact Garbage Collection运行时或者重新启动Unity时以前导入的资源的信息会被清空掉。如果要关闭AGC的执行则可以取消勾选“Edit——Project Settings——Editor——Remove unused Artifacts on Restart”也可以在脚本中通过EditorUserSettings.artifactGarbageCollection来禁用它。
    Include PreviewImporter勾选后会包含由预览窗口生成的Artifacts。

右上方的搜索框可以搜索项目中的资源。

左侧的Asset表示资源Last Import表示最后一次导入这个资源是在什么时候Duration(ms)表示最后一次导入这个资源时花费了多少毫秒才将它导入到项目中。

    选中一个资源后,可以在右侧看到它的信息。
    点击AssetProject窗口会在项目中定位到该资源存放的位置。
    GUID表示Unity分配给这个资源的全局唯一标识。
    Asset Size表示这个资源的文件大小。
    Path表示这个资源在项目中的路径。
    Editor表示是Unity的哪个版本创建这个资源的Artifact的。
    Timestamp表示这个资源的Artifact被创建时的时间它对应Library文件夹中指定文件的Timestamp的值。
    Duration表示导入这个资源所花费的时间。
    Reason for import表示导入原因即这个资源最近重新导入的描述以及这个资源相关依赖类型的详细信息。当导入原因有多个是可以用搜索栏进行查找。
    Produced Files/Artifacts表示这个资源最后一次导入Unity时在Library文件夹中呈现的Artifact的路径。通常每个资产只有一个Artifact有时也可能有多个。
    Dependencies表示这个资源依赖的其它资源如果修改它们可能会导致这个资源被重新导入到Unity。可以Dependencies的数量过多可以使用搜索栏查找。