SonarQube使用它与Unity 3D吨的问题

时间:2016-12-07 10:41:34

标签: c# sonarqube sonarqube-scan

我正在尝试在我们的组织上设置Sonar,我们主要制作Unity项目。

我们的问题是提供给C#语言的规则在Unity上下文中并不总是相同。

  1. 在Unity中有一个MonoBehaviour类,如果你声明一些方法(Awake,Start),它们会被反射调用:
  2. https://docs.unity3d.com/ScriptReference/MonoBehaviour.html

    所以在这种情况下,我有很多“删除这个未使用的私人成员”。

    有没有办法告诉,如果我的类派生自MonoBehaviour(或AssetPostprocessor等等)并且我的方法名称例如是“Awake”,那么不应用该规则?我的意思是,有没有办法设置自定义规则并使其他规则无效?

    1. 这同样适用于Unity序列化系统。您可以拥有一个包含[SerializeField]属性的私有字段,它将由Unity自动初始化:
    2. https://docs.unity3d.com/ScriptReference/SerializeField.html

      在这种情况下,如果我的字段有默认值,我会得到大量的“Make”{FIELD}“”readonly“”因为它是Unity然后“填充”从检查员更新/更改的值但是如果我只读它在Unity的序列化系统中不起作用。

      感谢。

1 个答案:

答案 0 :(得分:3)

感谢您报告这些问题。我们还没有使用SonarQube对Unity项目进行过测试,但由于社区和基于Unity的代码库非常庞大,因此它已经在我们的雷达上。

此时我无法针对您的第一个问题(基于约定的反射)提出任何其他解决方法,但要禁用该规则。我创建了一张JIRA票证来调查选项:https://jira.sonarsource.com/browse/SLVS-1104

以下是readonly字段问题的票据。这绝对是可以轻松修复的东西。它将成为下一版本的一部分:https://jira.sonarsource.com/browse/SLVS-1105