Unity3D Unity3D:创建自定义探查器模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建自定义探查器模块 自定义性能分析器模块在“性能分析器”窗口中显示系统的性能数据。 可以通过以下方式之一创建自定义探查器模块: * 使用探查器模块编辑器。 * 创建探查器模块脚本。 某些软件包包括自定义探查器模块,您可以在安装该特定软件包时使用这些模块。有关详细信息,请参阅探查器模块列表。 自定义模块在 Profiler 窗口图表视图 (A) 中显示您在代码中指定的计数器,而计数器在模块详细信息面板 (B) 中显示为列表。 使用性能分析器模块编辑器创建自定义性能分析器模块 您可以使用 Unity 的内置性能分析器模块编辑器创建自定义性能分析器模块。有关更多信息,请参阅探查器模块编辑器文档部分创建自定义模块。 在代码中创建自定义探查器模块 若要通过代码创建自定义探查器模块,必须创建新的探查器模块脚本并定义模块的属性,包括它显示的计数器、名称和图标。 若要定义自定义探查器模块,脚本必须执行以下操作: 1. 在项目或包中定义从探查器模块派生的类。在下面的示例中,该类称为:T
Unity3D Unity3D:创建自定义探查器计数器 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建自定义探查器计数器 要在 Unity 性能分析器中显示自定义指标,必须在 Unity 性能分析核心包中使用性能分析器计数器 API。 可以使用分析核心 API 跟踪应用程序中的指标。您可以在 Unity 性能分析器中显示计数器跟踪的信息。使用自定义探查器计数器比较系统指标,并在“探查器”窗口中识别性能问题。 自定义探查器计数器可以显示来自 或 的数据。ProfilerCounterProfilerCounterValue 有关使用 Unity 性能分析核心 API 创建性能分析器计数器的完整指南,请参阅性能分析器计数器 API 指南。 若要添加探查器计数器,请创建脚本以执行以下操作: * 创建新计数器。 * 将计数器分配给探查器类别。 * 更新计数器的值。 这些部分中的代码示例添加了一个性能分析器计数器,用于跟踪 Unity 为游戏对象的轨迹效果的每个实例创建的粒子总数。在这些示例中,游戏对象的名称为“坦克”。 定义计数器 若要创建新计数器,请编写脚本来定义新计数器的值类
Unity3D Unity3D:虚拟纹理配置文件模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 虚拟纹理配置文件模块 虚拟纹理分析器模块显示有关应用程序中流虚拟纹理的统计信息。如果场景中有大量高分辨率纹理,虚拟纹理会减少应用程序使用的 GPU 内存量,以及应用程序中纹理的加载时间。 注意:要使用 Virtual Texturing Profiler 模块,必须在您的项目的 Player Settings 中启用 Virtual Texturing (Edit > Project Settings > Player > Other Settings )。 该图表显示有关应用程序运行时屏幕上的纹理图块的信息,以及纹理使用的内存量。 当您选择 Virtual Texturing 模块时,Profiler 窗口的下方窗格会显示统计信息,例如虚拟纹理使用的缓存大小。 Virtual Texturing Profiler 模块的图表分为四个类别: 图表描述必填磁贴屏幕上可见的纹理图块数。这些是着色器尝试采样以渲染所选帧的磁贴。最大缓存 Mip 偏差自动 mipmap 偏差应用于具有相同纹理格式的所
Unity3D Unity3D:Video Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Video Profiler 模块 Video Profiler 模块显示有关应用程序中的视频所用资源的信息,例如内存、缓冲和视频剪辑的数量。借助这些信息可以确定应用程序在所选平台上播放和缓冲视频的效率。还可以使用 CPU Usage Profiler 模块来评估 Unity 在视频的哪些方面花费了时间。有关更多信息,请参阅 CPU Usage Profiler 模块文档。 图表类别 Video Profiler 模块的图表被分为四个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。有关如何使用 Profiler 窗口的更多信息,请参阅 Profiler 窗口入门相关文档。 图表描述Total Video Sources场景中视频源的总数。Playing Video Sources场景中正在播放的视频源数量。Pre-buffered frames预缓冲帧的总数。Total Video Memory应用程序中的视频所使用的系统内存量。
Unity3D Unity3D:UI 和 UI Details Profiler 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 UI 和 UI Details Profiler UI 和 UI Details Profiler 模块提供有关 Unity 在应用程序内布局和渲染用户界面方面花费的时间和资源的信息。使用此模块可以了解 Unity 如何为应用程序处理 UI 批处理,包括 Unity 为何以及如何对对象进行批处理。使用此模块还可以查明 UI 的哪一部分导致性能下降,或者在拖动时间轴的同时预览 UI。 有关如何使用 Profiler 窗口的更多信息,请参阅 Profiler 窗口入门相关文档。 图表类别 UI 和 UI Details Profiler 模块的图表被分为五个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。 图表描述UI Profiler 模块LayoutUnity 在执行
Unity3D Unity3D:Rendering Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Rendering Profiler 模块 Rendering Profiler 显示有关 CPU 和 GPU 为渲染场景完成的工作的渲染统计信息和信息。您可以使用这些统计信息来衡量场景不同区域的资源强度,这对优化很有用。 该图表显示您的应用程序渲染的批次 (Batches)、SetPass 调用 (SetPass Calls)、三角形 (Triangles) 和顶点 (Vertices) 的数量。下方的面板将显示更多渲染统计信息,这些统计信息与 GameView Rendering Statistics 窗口中显示的统计信息一致。 。 Rendering Profiler 模块的图表分为四个类别: 图表描述Batches CountUnity 在一帧内处理的批次数。SetPass Calls CountUnity 在一帧中切换用于渲染游戏对象的着色器通道的次数。一个着色器可能包含多个着色器通道,每个通道以不同的方式渲染场景中的游戏对象。Triangles CountUnity 在一帧内处理
Unity3D Unity3D:2D Physics Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 2D Physics Profiler 模块 2D Physics Profiler 模块显示物理引擎在场景中已处理的 2D 物理的相关信息。此信息有助于诊断和解决与场景中的 2D 物理相关的性能问题或意外差异。 图表类别 2D Physics Profiler 模块的图表被分为九个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。 图表描述Total Bodies场景中 Rigidbody2D 的总数Active Bodies场景中活跃 Rigidbody2D 的总数。Sleeping Bodies场景中睡眠 Rigidbody2D 的总数Dynamic Bodies场景中动态 Rigidbody2D 的总数。动态 Rigidbody2D 是最具交互性的 Rigidbody2D 类型。重力和作用力会影响此类型,这是最耗费资源的类型。Kinematic Bodies场景中运动 Rigidbody2D 的总数。
Unity3D Unity3D:Physics Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Physics Profiler 模块 物理性能刻画器模块显示有关物理系统在项目场景中处理的物理场的信息。此信息可帮助您诊断和解决与项目场景中的物理场相关的性能问题或意外差异。您还可以使用物理场调试可视化来进一步调试和了解应用程序中的物理场问题。 图表类别 物理性能分析器模块的图表跟踪应用程序在物理上花费的时间。计时分为不同的图表类别。要更改图表中类别的顺序,您可以在图表的图例中拖动它们。您还可以单击类别的彩色图例以切换其显示。单击图表时,可以在图表下方的模块详细信息窗格中看到每个图表类别的确切数值。 图表功能物理使用的内存物理模块已使用的内存总量主动动态体未处于睡眠状态的刚体组件和关节主体组件的数量。主动运动体活动运动刚体组件的数量。在帧中调用 MovePosition 或 MoveRotate 时,运动刚体处于活动状态,并在下一帧中保持活动状态。 注: Unity 可能会处理每帧多次连接接头的运动刚体构件,这会影响显示的值。动态体刚体构件和铰接体构件的数量。重叠重叠事件的数量。重叠事件
Unity3D Unity3D:Memory Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Memory Profiler 模块 有两种方法可以在 Unity 中分析应用程序的内存使用情况: * 内存探查器模块:一个内置的探查器模块,可提供有关应用程序使用内存的位置的基本信息。 * 内存性能分析器包:可以添加到项目中的 Unity 包。它会向 Unity 编辑器添加一个额外的内存性能分析器窗口,然后您可以使用该窗口更详细地分析应用程序中的内存使用情况。您可以存储和比较快照以查找内存泄漏,或查看内存布局以查找内存碎片问题。 本页涵盖有关内置 Memory Profiler 模块的信息。 有关 Memory Profiler 包的更多信息,请参阅 Memory Profiler 文档。 内存性能分析器模块可视化表示应用程序中分配的总内存的计数器。您可以使用内存模块查看加载对象的数量以及它们在每个类别中占用的内存总数等信息。您还可以查看每个性能分析器帧的 GC 分配数。 编辑器中的内存分析 在编辑器中分析应用程序时,而不是在目标设备上构建和分析应用程序时,内存性能分析器模块中的性
Unity3D Unity3D:GPU Usage Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 GPU Usage Profiler 模块 GPU Usage Profiler 模块显示应用程序的 GPU 时间使用情况。只能在运行模式 (Playmode) 下使用 GPU Profiler 或者用于应用程序的构建。不能用于对 Editor 进行性能分析。 注意:如果在 Player Settings 中启用了 Graphics Jobs,则不支持 GPU 性能分析。请参阅有关独立平台 Player 设置的文档以了解更多信息。此外,在 macOS 上,只能在 Mavericks 10.9 或更高版本上对 GPU 进行性能分析。 GPU 性能分析支持 下表列出了
Unity3D Unity3D:Global Illumination Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Global Illumination Profiler 模块 全局照明探查器模块显示有关 Enlighten 实时全局照明子系统在所有工作线程中使用的 CPU 时间的统计信息。有一个选项可以控制命令行参数中包含的 Enlighten 工作线程数。 图表类别 全局照明刻画器模块的图表跟踪全局照明子系统在所有工作线程上花费的时间。时间分为10类。要更改图表中类别的顺序,可以将它们拖放到图表的图例中。您还可以单击类别的彩色图例以切换其显示。 图表描述光探头更新光照探针所用的时间。设置设置阶段所用的时间。环境处理环境光照所用的时间。输入照明处理输入光照所用的时间。系统更新系统所用的时间。解决任务运行光能传递解算器任务所用的时间。动态对象更新动态游戏对象所用的时间。其他命令更新其他命令所用的时间。阻止命令写入处于被阻止状态下等待命令缓冲区的时间。 模块详细信息面板 选择 Global Illumination 模块时,下面的详细信息面板将显示应用程序在选定帧内花费的时间的细分信息。 可用的数据
Unity3D Unity3D:文件访问探查器模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 文件访问探查器模块 文件访问探查器模块显示有关应用程序中文件活动的信息,例如 Unity 执行的读取或写入操作数或打开的文件句柄数(针对特定帧或捕获中的所有帧)。可以使用此信息来帮助确定应用程序执行文件操作的效率。此模块可以捕获有关对生成的应用程序的文件夹结构中的任何文件或 Unity 项目文件夹中的任何文件执行的文件操作的信息(如果在 Unity 编辑器中运行性能分析器)。 默认情况下不启用此模块。要启用文件访问探查器模块,请打开探查器窗口,选择探查器模块下拉菜单,然后切换文件访问复选框。 图表类别 文件访问探查器模块的图表分为五类。要更改图表中类别的顺序,请将它们拖放到图表的图例中。您还可以单击类别的彩色图例以打开或关闭其显示。有关如何使用“探查器”窗口的详细信息,请参阅“探查器”窗口入门。此模块不会收集有关不成功文件操作的信息。如果文件操作尝试失败,Unity 将显示错误。 图表描述打开的文件此帧在本地文件系统中成功打开的文件总数。文件已关闭此帧本地文件系统中成功关闭的文件总数。文件查
Unity3D Unity3D:CPU Usage Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 CPU Usage Profiler 模块 CPU Usage Profiler 模块包含一个图表,其中显示应用程序中的时间花费情况。通过该图表可以概要了解应用程序花费时间的所有重要方面(例如渲染、脚本和动画)。文档的此部分涵盖: * 图表类别 * 模块详细信息面板 * Live 设置 * Show Full Scripting Method Names 设置 * Timeline 视图 * Flow events * Hierarchy 和 Raw Hierarchy 视图 * 分配调用栈 * 常用标记 图表类别 CPU Usage Profiler 模块的图表可跟踪应用程序主线程中花费的时间。这些时间被分为九个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。 类别描述Rendering应用程序花费多少时间来渲染图形。Scripts应用程序花费多少时间来运行脚本。Physics应用程序在物理引擎上花费多少时间。
Unity3D Unity3D:Audio Profiler 模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Audio Profiler 模块 Audio Profiler 模块可以监视应用程序中音频系统的性能(例如总负载和语音计数)。 Audio Profiler 模块的图表可跟踪应用程序中花费在音频上的时间。这些时间被分为四个类别。要更改图表中类别的顺序,可以在图表的图例中拖放这些类别。还可以单击某个类别的有色图例以切换是否显示。 图表描述Playing Audio Sources场景中在选定帧播放的音频源的总数。此信息可用于监测音频是否过载。Audio Voices选定帧中使用的音频(FMOD 通道)语音数。Total Audio CPU音频在选定帧中使用的 CPU 使用量。Total Audio Memory音频引擎在选定帧中使用的 RAM 量。 模块详细信息面板 选择 Audio Profiler 模块时,下面的详细信息面板将显示选定帧的音频数据的细分信息。两种视图可以用来检查 Audio Profiler 数据:Simple 和 Detailed。
Unity3D Unity3D:资产加载分析器模块 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 资产加载分析器模块 资产加载探查器模块显示有关应用程序如何加载资产的信息,包括按区域划分的读取操作明细。详细信息窗格提供对配置文件期间捕获的每个资产加载标记的见解。您可以使用此信息来确定应用程序加载资产的效率,并确定任何特定问题。 默认情况下不启用此模块。要启用资产加载性能分析器模块,请打开性能分析器窗口,选择性能分析器模块下拉菜单,然后切换资产加载复选框。 图表类别 资产加载刻画器模块的图表分为七类。要更改图表中类别的顺序,可以将它们拖放到图表的图例中。您还可以单击类别的彩色图例以切换其显示。有关如何使用“探查器”窗口的详细信息,请参阅“探查器”窗口入门。 图表描述其他读物从 AsyncReadManager 为未指定的子系统请求的字节数。纹理读取从 AsyncReadManager 请求的用于纹理加载的字节数。虚拟纹理读取从 AsyncReadManager 为虚拟纹理请求的字节数。网格读取从 AsyncReadManager 请求的网格加载字节数。音频读取从 AsyncReadMan
Unity3D Unity3D:常见性能分析器标记 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 常见性能分析器标记 Unity 的代码配备了大量性能分析器标记,可用于深入了解应用程序中占用时间的内容。下表说明了一些常见标记的作用: * 主线程基础标记 * 脚本更新标记 * 渲染和 VSync 标记 * 后端脚本标记 * 多线程标记 * 物理标记 * 性能警告 主线程基础标记 主线程基础标记可清晰区分在应用程序上花费的时间与在编辑器和性能分析器活动中花费的时间。ProfilerRecorder 也可以使用这些标记来获取主线程上帧的时间使用情况。 标记功能PlayerLoop包含源自应用程序主循环的所有样本。如果播放器以活跃运行模式在编辑器中运行时,目标是编辑器而不是运行模式,则 PlayerLoop 样本会嵌套在 EditorLoop 下。EditorLoop (仅限编辑器的标记)包含源自编辑器主循环的所有样本。仅当在 Editor 中对播放器进行性能分析时才会出现此样本。使用性能分析器将运行模式作为目标时,EditorLoop 样本会显示渲染和运行包含播放器的编辑器所花
Unity3D Unity3D:应用程序性能分析 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 应用程序性能分析 使用 Unity 性能分析器对应用程序进行性能分析时,可以通过三种主要方式记录数据: * 在目标平台上的播放器中对应用程序进行性能分析 * 在 Unity 编辑器中以运行模式对应用程序进行性能分析 * 对 Unity 编辑器进行性能分析 获得有关应用程序的准确时序的最佳方法是在打算发布它的终端平台上对它进行性能分析。这样可提供有关影响应用程序性能的因素的准确时序。 但是,每次要改进其性能元素时都构建应用程序可能会非常耗时。因此,要快速评估应用程序的性能,可以直接在编辑器中以运行模式对它进行性能分析。在运行模式下进行性能分析不会准确反映应用程序在真实设备上表现出的性能,但它是一个有用的工具,可在终端平台上进行初始分析后快速检查进行的更改是否可提高应用程序的性能。 Unity 编辑器可能会影响应用程序的性能,因为它在运行模式下运行时使用与应用程序相同的资源,因此还可以单独对编辑器进行性能分析以确定它使用的资源。如果应用程序仅设计为在运行模式下工作(例如用于电影制作),这会
Unity3D Unity3D:垃圾回收最佳做法 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 垃圾回收最佳做法 垃圾回收是自动的,但该过程需要大量的 CPU 时间。 与其他编程语言(如 C++)相比,C# 的自动内存管理降低了内存泄漏和其他编程错误的风险,在 中,您必须手动跟踪和释放分配的所有内存。 自动内存管理使您可以快速轻松地编写代码,并且几乎没有错误。但是,这种便利性可能会对性能产生影响。若要优化代码以提高性能,必须避免应用程序大量触发垃圾回收器的情况。本节概述了影响应用程序触发垃圾回收器时间的一些常见问题和工作流。 * 临时拨款 * 可重用对象池 * 重复字符串串联 * 返回数组值的方法 * 收集和数组重用 * 闭包和匿名方法 * 拳击 * 数组值统一 API * 空数组重用 临时分配 应用程序通常会在每个帧中将临时数据分配给托管堆;但是,这可能会影响应用程序的性能。例如: * 如果程序每帧分配一千字节 (1KB) 的临时内存,并且它以每秒 60 帧的速度运行,则它必须每秒分配 60 KB 的临时内存。
Unity3D Unity3D:禁用垃圾回收 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 禁用垃圾回收 您可以使用 垃圾收集器.GCMode 在运行时禁用垃圾回收。这可以防止 CPU 峰值,但应用程序的内存使用量永远不会减少,因为垃圾回收器不会收集不再具有任何引用的对象。 警告:禁用垃圾回收器需要仔细的内存管理。如果不仔细管理内存,托管堆会不断扩展,直到应用程序内存不足,操作系统将其关闭。 您可以使用以下 API 微调对自动垃圾回收器的控制: * System.GC.Collect:执行完整的阻止垃圾回收。 * 垃圾回收器.模式.禁用:完全禁用垃圾回收器。在此模式下使用不起作用。System.Gc.Collect * 垃圾回收器.模式.手动:禁用垃圾回收器的自动调用,但您仍然可以用于运行完整收集。System.GC.Collect * GarbageCollection.CollectIncremental:以增量方式运行垃圾回收器。 只有在能够计算和控制需要分配的内存量时,才应在应用程序的简短性能关键部分禁用垃圾回收。之后应立即启用垃圾回收器,并经常分析项目,
Unity3D Unity3D:增量垃圾回收 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 增量垃圾回收 增量垃圾回收(GC)将垃圾回收过程分散到多个帧上。这是 Unity 中的默认垃圾回收行为。 Unity 的垃圾收集器使用 Boehm-Demers-Weiser 垃圾收集器。默认情况下,Unity 在增量模式下使用它,这意味着垃圾回收器将其工作负载拆分到多个帧上,而不是停止主 CPU 线程(停止世界垃圾回收)来处理托管堆上的所有对象。这意味着 Unity 会缩短应用程序执行的中断时间,而不是让垃圾回收器处理托管堆上的对象的长时间中断。 增量模式总体上不会加快垃圾回收速度,但由于它将工作负载分布在多个帧上,因此减少了与 GC 相关的性能峰值。这些中断称为 GC 峰值,因为它们在 Profiler 窗口的帧时间图中显示为大峰值。 如果禁用增量模式(菜单:“>播放器编辑>项目设置”>“其他设置”>“配置”>“使用增量 GC”),则垃圾回收器在执行收集传递时必须检查整个堆。这称为停止世界垃圾回收,因为每当垃圾回收器运行时,
Unity3D Unity3D:内存分配器定制 在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 内存分配器定制 优化应用程序性能时,要考虑的一个重要因素是内存分配。使用此页面了解有关 Unity 本机内存分配器类型的信息,并了解可以自定义分配器以提高性能的方案。Unity 建议您大致了解分配器。 有关分配器类型及其默认值的完整参考,请参阅自定义分配器。 注意:并非所有平台都支持此功能。有关详细信息,请参阅特定于平台的文档。 应用程序使用内存分配器来平衡性能和可用内存空间。如果应用程序具有大量备用内存,则在加载场景和帧时,它可以优先使用速度更快、内存密集型的分配器。但是,如果应用程序内存有限,则需要有效地使用该内存,即使这意味着使用较慢的分配器。为了帮助您为不同的项目获得最佳性能,您可以自定义 Unity 的分配器以适应每个应用程序的大小和要求。 Unity 有五种分配器类型。每种类型都有不同的算法,用于将分配拟合到内存块中,因此对于不同的分配很有用。分配之间的重要区别通常
Unity3D Unity3D:内存托管 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 内存托管 Unity 的托管内存系统是基于 Mono 或 IL2CPP 虚拟机 (VM) 的 C# 脚本环境。托管内存系统的好处是它管理内存的释放,因此您无需通过代码手动请求释放内存。 Unity 的托管内存系统使用垃圾回收器和托管堆,以便在脚本不再包含对这些分配的任何引用时自动释放内存分配。这有助于防止内存泄漏。当分配内存时,会发生内存泄漏,对它的引用丢失,然后永远不会释放内存,因为它需要对它的引用来释放它。 此内存管理系统还保护内存访问,这意味着您无法访问已释放的内存,或者代码访问的内存永远无效。但是,此内存管理过程会影响运行时性能,因为分配托管内存对于 CPU 来说非常耗时。垃圾回收还可能阻止 CPU 执行其他工作,直到完成。 值和引用类型 调用方法时,脚本后端将其参数的值复制到为该特定调用保留的内存区域,该区域位于称为调用堆栈的数据结构中。脚本后端可以快速复制占用几个字节的数据类型。但是,对象、字符串和数组通常要大得多,并且脚本后端定期复制这些类型的数据效率低下。 必须在托管堆上
Unity3D Unity3D:Editor 故障排除 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Editor 故障排除 下面的各个部分将介绍如何在不同情况下排除 Unity Editor 的故障以及预防问题。通常情况,应确保计算机满足所有系统要求,处于最新状态,并且您在系统中具有所需的用户权限。还要定期备份以确保项目的安全。 版本 可以在不同的文件夹中安装不同版本的 Editor。但是,请务必备份项目,因为这些项目可能会被较新的版本升级,而无法在较旧版本的 Unity 中打开它们。请参阅关于安装 Unity 的手册页以了解更多信息。 附加组件的许可证仅对具有相同主要版本号(例如 3.x 和 4.x)的 Unity 版本有效。如果升级到 Unity 的次要版本,例如 4.0 升级到 4.1,则将保留附加组件。 激活 互联网激活是生成 Unity
Unity3D Unity3D:YAML 场景文件的一个示例 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 YAML 场景文件的一个示例 下面给出了一个简单但完整的场景的示例。该场景只包含一个摄像机和一个立方体对象。请注意,文件__必须__使用下面两行作为开头: %YAML 1.1 %TAG !u! tag:unity3d.com,2011: …才能被 Unity 接受。否则,由于导入过程会容忍遗漏,因此会尽可能为缺失的属性数据提供默认值。 %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!header SerializedFile: m_TargetPlatform: 4294967294 m_UserInformation: --- !u!29 &1 Scene:
Unity3D Unity3D:UnityYAML 推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 UnityYAML Unity 使用自定义的优化 YAML 库(称为 UnityYAML)。UnityYAML 库不支持完整的 YAML 规范。本文档概述 UnityYAML 支持 YAML 规范的哪些部分。 无法在外部生成或编辑 UnityYAML 文件。 支持的功能 功能支持映射UnityYAML 支持流样式和块样式。标量UnityYAML 支持双引号和单引号标量以及普通标量。可以将标量拆分为多行。请注意,多行标量可能会在解析过程中产生性能和内存开销。 分成多行的普通标量必须比前一行缩进更多。请参阅下表以查看示例。 您可以在标量中使用 UTF–8 字符,但是 UnityYAML 仅在这些字符是双引号标量的一部分时才会对这些字符解码。序列UnityYAML 支持映射、块样式以及包含块映射的块序列。 在多行普通标量上缩进的示例: parent: This is a multi-line scalar