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

查找用法
在 Unity 项目中, 查找用法 Alt+F7 功能通过从 Unity 场景、资源和预制件中提取的数据得到了扩展。 如果您搜索用作事件处理程序的类或方法,ReSharper 将显示它在 Unity 文件中的使用位置,并按类型、组件名称和父游戏对象分组。
性能分析
ReSharper 向您展示性能敏感区域:每帧调用的事件函数,例如 Update、 FixedUpdate 和 LateUpdate ,以及协程方法。 在这些频繁调用的方法中,性能指标还会将您的注意力引向已知的高开销操作,例如调用 GetComponent、 Find 或 SendMessage ,并提供上下文操作以将初始化移动到 启动 或 Awake。

Unity 有许多方法会被非常频繁地调用。 这些方法被视为性能关键上下文,并在编辑器边栏中高亮显示。
您可以在 ReSharper 选项 的 页面中启用并配置性能分析,位于 Alt+R, O 下的 在频繁调用的代码中启用性能分析。
要为特定问题配置颜色,请转到 Visual Studio 选项( ),打开 环境 | 字体和颜色 页面,然后为以 ReSharper Unity 开头的项目选择所需的颜色。
事件函数
检查和快速修复
ReSharper 会对未知场景、标签和层显示警告。
启用 解决方案范围分析 时,ReSharper 会理解隐式使用的字段和事件函数,并不会将它们标记为未访问。
空的事件函数会显示为无用代码,并提供 快速修复 以将其移除。
在
NetworkBehaviour之外的任何类中使用SyncVarAttribute会被视为错误。建议的快速修复是从未解析符号的用法创建一个序列化字段:
ReSharper 确保您的所有事件函数都有正确的签名:它会高亮显示不正确的签名并提供快速修复以纠正它们:
ReSharper 会警告您不要使用
tag属性进行低效的字符串字面量比较,并提供快速修复以将其重写为调用CompareTag。ReSharper 会在您尝试使用
new关键字创建从MonoBehaviour或ScriptableObject派生的类的新实例时发出警告。 建议的快速修复是使用gameObject.AddComponent<T>()或ScriptableObject.CreateInstance<T>()。还提供了对
[InitializeOnLoad]和[InitializeOnLoadMethod]属性的检查,确保它们具有正确的方法或构造函数签名,并且如果类没有静态构造函数,ReSharper 会将冗余的[InitializeOnLoad]属性变灰,并提供快速修复以快速移除该属性或创建构造函数。
您可以在 ReSharper 中查看 Unity 特定代码检查的完整列表 此处。
外部注解
许多 Unity 特定的程序集都使用 外部注解 进行了注解,以便在您使用这些程序集时改进 代码检查。
将标记为 UnityEngine.dll 、 UnityEngine.Networking.dll 和 UnityEditor.dll 的代码视为隐式使用。
将
Component.gameObject和Object.name标记为非空。Debug.Assert被标记为断言方法以帮助空值分析(例如,在Debug.Assert(x != null)之后“值不能为空”)。Debug.AssertFormat、LogFormat等获得字符串格式化辅助功能。Assertions.Assert方法被标记为断言方法以帮助空值分析。EditorTestsWithLogParser.ExpectLogLineRegex获得正则表达式辅助功能。现在各种属性要求其应用的类派生自特定的基类。 例如,
[CustomEditor]需要一个基类为Editor。支持 Unity 2017.2 的模块化 UnityEngine 程序集。
支持 .shader 文件
ReSharper 在 .着色器 文件中提供对 ShaderLab 语法的支持,包括对 Cg/HLSL 代码块、隐式着色器关键词、特定阶段的局部关键词以及带有 _KEYWORD_DEFINED 后缀的预处理指令的支持。
支持程序集定义文件
程序集定义文件( .asmdef )用于将项目脚本分成多个程序集以减少编译时间。 当您更改脚本时,Unity 只会重建所需的程序集。
ReSharper 提供对 .asmdef 文件的支持:JSON 模式验证、代码补全、查找用法、重命名重构、引用元素导航,以及针对自引用和文件名/程序集名称不匹配的检查/快速修复。 有关 .asmdef 文件支持的更多信息,请参阅 博客文章。

实时模板
ReSharper 提供了一些 Unity 特定的 实时模板 ,例如, sprop 用于具有序列化后备字段的 Unity 属性,或 sfield 用于 Unity 序列化字段。
文件模板
ReSharper 提供了许多 文件模板 ,用于新建 C# 脚本、测试和着色器文件。


