ReSharper 2025.2 Help

Unity 功能

编辑器助手

通过 UnityEngine.ColorUnityEngine.Color32Color.HSVToRGB 定义的颜色在编辑器中高亮显示。 您还可以在颜色使用处按下 Alt+Enter 并选择 从调色板中选取颜色 打开颜色编辑器并 直观地修改颜色

Unity 代码中的颜色辅助

查找用法

在 Unity 项目中, 查找用法 Alt+F7 功能通过从 Unity 场景、资源和预制件中提取的数据得到了扩展。 如果您搜索用作事件处理程序的类或方法,ReSharper 将显示它在 Unity 文件中的使用位置,并按类型、组件名称和父游戏对象分组。

性能分析

ReSharper 向您展示性能敏感区域:每帧调用的事件函数,例如 UpdateFixedUpdateLateUpdate ,以及协程方法。 在这些频繁调用的方法中,性能指标还会将您的注意力引向已知的高开销操作,例如调用 GetComponentFindSendMessage ,并提供上下文操作以将初始化移动到 启动Awake

ReSharper:Unity 性能指标

Unity 有许多方法会被非常频繁地调用。 这些方法被视为性能关键上下文,并在编辑器边栏中高亮显示。

您可以在 ReSharper 选项 的 代码编辑 | Unity 引擎 页面中启用并配置性能分析,位于 Alt+R, O 下的 在频繁调用的代码中启用性能分析

要为特定问题配置颜色,请转到 Visual Studio 选项(工具 | 选项 ),打开 环境 | 字体和颜色 页面,然后为以 ReSharper Unity 开头的项目选择所需的颜色。

事件函数

  • 您可以使用 Unity 事件函数生成代码 菜单 Alt+Insert 中生成事件函数。 此操作也可在基于 Unity 的类中的任何地方通过 Alt+Enter 使用。

    生成 Unity 事件函数
  • 自动补全 会在基于 Unity 的类中声明方法时建议事件函数名称,并扩展为包括方法签名。 在从已知 Unity 类派生的类中开始键入事件函数,例如 MonoBehaviour

    ReSharper:Unity 代码补全
  • 基于 Unity 的类中的事件函数和参数的描述会显示在工具提示和 快速文档 中。

    ReSharper:Unity 快速文档

检查和快速修复

  • ReSharper 会对未知场景、标签和层显示警告。

  • 启用 解决方案范围分析 时,ReSharper 会理解隐式使用的字段和事件函数,并不会将它们标记为未访问。

  • 空的事件函数会显示为无用代码,并提供 快速修复 以将其移除。

  • NetworkBehaviour 之外的任何类中使用 SyncVarAttribute 会被视为错误。

  • 建议的快速修复是从未解析符号的用法创建一个序列化字段:

  • ReSharper 确保您的所有事件函数都有正确的签名:它会高亮显示不正确的签名并提供快速修复以纠正它们:

  • ReSharper 会警告您不要使用 tag 属性进行低效的字符串字面量比较,并提供快速修复以将其重写为调用 CompareTag

  • ReSharper 会在您尝试使用 new 关键字创建从 MonoBehaviourScriptableObject 派生的类的新实例时发出警告。 建议的快速修复是使用 gameObject.AddComponent<T>()ScriptableObject.CreateInstance<T>()

  • 还提供了对 [InitializeOnLoad][InitializeOnLoadMethod] 属性的检查,确保它们具有正确的方法或构造函数签名,并且如果类没有静态构造函数,ReSharper 会将冗余的 [InitializeOnLoad] 属性变灰,并提供快速修复以快速移除该属性或创建构造函数。

  • 以及更多...

您可以在 ReSharper 中查看 Unity 特定代码检查的完整列表 此处

外部注解

许多 Unity 特定的程序集都使用 外部注解 进行了注解,以便在您使用这些程序集时改进 代码检查

  • 将标记为 UnityEngine.dll UnityEngine.Networking.dll UnityEditor.dll 的代码视为隐式使用。

  • Component.gameObjectObject.name 标记为非空。

  • Debug.Assert 被标记为断言方法以帮助空值分析(例如,在 Debug.Assert(x != null) 之后“值不能为空”)。

  • Debug.AssertFormatLogFormat 等获得字符串格式化辅助功能。

  • Assertions.Assert 方法被标记为断言方法以帮助空值分析。

  • EditorTestsWithLogParser.ExpectLogLineRegex 获得正则表达式辅助功能。

  • 现在各种属性要求其应用的类派生自特定的基类。 例如, [CustomEditor] 需要一个基类为 Editor

  • 支持 Unity 2017.2 的模块化 UnityEngine 程序集。

支持 .shader 文件

ReSharper 在 .着色器 文件中提供对 ShaderLab 语法的支持,包括对 Cg/HLSL 代码块、隐式着色器关键词、特定阶段的局部关键词以及带有 _KEYWORD_DEFINED 后缀的预处理指令的支持。

支持程序集定义文件

程序集定义文件( .asmdef )用于将项目脚本分成多个程序集以减少编译时间。 当您更改脚本时,Unity 只会重建所需的程序集。

ReSharper 提供对 .asmdef 文件的支持:JSON 模式验证、代码补全、查找用法、重命名重构、引用元素导航,以及针对自引用和文件名/程序集名称不匹配的检查/快速修复。 有关 .asmdef 文件支持的更多信息,请参阅 博客文章

支持 Unity asmdef 文件

实时模板

ReSharper 提供了一些 Unity 特定的 实时模板 ,例如, sprop 用于具有序列化后备字段的 Unity 属性,或 sfield 用于 Unity 序列化字段。

以下是 预定义的 Unity 特定文件模板的完整列表

文件模板

ReSharper 提供了许多 文件模板 ,用于新建 C# 脚本、测试和着色器文件。

以下是 预定义的 Unity 特定文件模板的完整列表

最后修改日期: 2025年 9月 27日