2016-12-07 1 views
1

Я пытаюсь настроить Sonar в нашей организации, что мы в основном делаем проекты Unity.SonarQube, используя его с Unity 3D тонны проблем

Наша проблема в том, что правила, предоставляемые языку C#, не всегда одинаковы в контексте Unity.

  1. В Unity есть класс MonoBehaviour, что если объявить некоторые методы (Awake, Start) они называют отражением:

https://docs.unity3d.com/ScriptReference/MonoBehaviour.html

Так что в этом случае у меня есть тонны Msgstr "Удалить этот неиспользуемый частный элемент".

Есть ли способ сказать, не применяйте это правило, если мой класс происходит из MonoBehaviour (или AssetPostprocessor и т. Д.), А мое имя метода - это, например, «Awake»? Я имею в виду, есть ли способ установить собственное правило и сделать недействительным другой?

  1. То же самое относится к системе сериализации Unity. Вы можете иметь закрытое поле с [SerializeField] атрибут и он получает автоматически инициализируется Unity:

https://docs.unity3d.com/ScriptReference/SerializeField.html

В этом случае я получаю тонны «Сделать„{FIELD}“„ReadOnly“» если мой поле имеет значение по умолчанию, потому что это Unity, затем «заполняет» это значение, обновленное/измененное от инспектора, но если я сделаю это только для чтения, он не будет работать в системе сериализации Unity.

Спасибо.

+0

Редактировать: Извините, я неправильно понял проблему. – Basic

ответ

3

Благодарим вас за сообщение об этих проблемах. Мы не тестировали проекты Unity с SonarQube, но это на нашем радаре, так как сообщество и база данных на базе Unity огромны.

На данный момент я не могу предложить какой-либо другой обходной путь для вашей первой проблемы (условное отражение), но для отключения этого правила. Я создал билет JIRA для изучения вариантов: https://jira.sonarsource.com/browse/SLVS-1104

И вот билет для проблемы с полем для чтения. Это определенно то, что можно легко устранить. Он будет частью следующего выпуска: https://jira.sonarsource.com/browse/SLVS-1105

+0

Спасибо, что ответили. Есть еще несколько подобных случаев (на основе Reflection): https://docs.unity3d.com/ScriptReference/AssetPostprocessor.html Я не знаю всех случаев, но я думаю, что мы могли бы привлечь персонал Unity, который мог бы помочь нас, особенно команда Q & A. – N3uRo

+0

Эй, @Tamas есть ли какие-либо обновления по этому поводу? Я ищу для внедрения сонара в моей компании, и я боюсь, что эти правила могут создать путаницу. – mFontoura

+0

Насколько я вижу, на этом не было никакого прогресса. Билет был перемещен здесь: https://github.com/SonarSource/sonar-csharp/issues/159 – Tamas