metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

>
>
Анализ проектов на Unity с помощью PVS-…
menu mobile close menu
Проверка проектов
Сообщения PVS-Studio
Диагностики общего назначения (General Analysis, C++)
Диагностики общего назначения (General Analysis, C#)
Диагностики общего назначения (General Analysis, Java)
Микрооптимизации (C++)
Диагностика 64-битных ошибок (Viva64, C++)
Реализовано по запросам пользователей (C++)
Cтандарт MISRA
Стандарт AUTOSAR
Стандарт OWASP (C#)
Проблемы при работе анализатора кода
Дополнительная информация
toggle menu Оглавление

Анализ проектов на Unity с помощью PVS-Studio

22 Июн 2022

Unity проекты, написанные на C#, можно проверить с помощью PVS-Studio из консоли или IDE. Проверяемый Unity проект должен успешно собираться, чтобы результаты проверки были максимально корректными и полными.

Загрузить анализатор можно на этой странице.

Перед началом работы с PVS-Studio нужно ввести данные лицензии. Здесь написано, как это сделать.

Проверка с помощью плагинов PVS-Studio для IDE

Открытие Unity проекта в Visual Studio и JetBrains Rider

Перед началом работы с кодом Unity проекта необходимо установить в настройках Unity предпочитаемый редактор скриптов. Это можно сделать с помощью параметра "External Script Editor" на вкладке "External Tools" в окне "Preferences". Чтобы открыть это окно, используйте опцию меню "Edit" -> "Preferences" в редакторе Unity:

UnityGuide_ru/image1.png

После этого открыть Unity проект в IDE можно, используя опцию "Assets" -> "Open C# Project" в редакторе Unity:

UnityGuide_ru/image2.png

Также вы можете открыть сгенерированный Unity .sln файл из IDE. Если .sln файл отсутствует, то необходимо произвести вышеописанные действия в редакторе Unity. Тогда .sln будет сгенерирован.

Использование анализатора в Visual Studio

Проанализировать Unity проект можно из Visual Studio. Руководство по использованию плагина доступно по ссылке.

Анализ может быть выполнен для следующих элементов:

  • весь Unity проект (.sln);
  • .csproj проекты, сгенерированные по Assembly Definition;
  • отдельные файлы .cs.

Запустить анализ можно из подменю плагина PVS-Studio в меню "Extensions" на верхней панели меню:

UnityGuide_ru/image3.png

Также запуск анализа доступен из окна "Solution Explorer" через контекстное меню по нажатию на элементе решения.

Отчёт об анализе доступен в окне "PVS-Studio":

UnityGuide_ru/image4.png

Использование анализатора в JetBrains Rider

Проанализировать Unity проект можно из JetBrains Rider. Возможности этого плагина и его применение аналогичны таковым для плагина Visual Studio. Подробная инструкция по использованию плагина для JetBrains Rider доступна по ссылке.

Запустить анализ можно через главное меню:

UnityGuide_ru/image5.png

Проверка проекта из командной строки

PVS-Studio можно запускать из командной строки. Это удобно, если вы хотите интегрировать анализ проекта в вашу инфраструктуру CI/CD.

Руководство по использованию CLI версии PVS-Studio доступно по ссылке.

Вы можете проверить всё решение (sln), отдельные проекты (csproj) или некоторый набор файлов исходного кода. В последнем случае путь к .sln/.csproj файлу также обязателен.

Для анализа C# проектов на Windows используется "PVS-Studio_Cmd.exe", на Unix-like системах "pvs-studio-dotnet".

Пример запуска PVS-Studio через CLI на Windows:

PVS-Studio_Cmd.exe -t D:\UnityProjects\MyProject\MyProject.sln

Пример запуска PVS-Studio через CLI на Unix-like системах:

pvs-studio-dotnet -t ./MyUnityProject.sln

По умолчанию анализатор генерирует отчёты в формате:

  • plog на Windows;
  • json на Linux и macOS.

Отчёты можно открывать с помощью IDE плагинов PVS-Studio.

Примечание: отчёты в формате plog не поддерживается в Rider. Кроме того, под Linux и macOS не поддерживается конвертация таких отчётов.

Ниже представлено меню плагина под Visual Studio:

UnityGuide_ru/image6.png

Отчёты можно сконвертировать в более удобный для восприятия человеком формат.

Для конвертации используется CLI утилита PlogConverter. На Windows используется "PlogConverter.exe", на Unix-like системах "plog-converter". Руководство к утилите доступно здесь.

Пример конвертации отчёта в формат HTML на Windows (вводится в одну строку):

PlogConverter.exe D:\UnityProjects\MyProject\MyProject.plog
-t FullHtml
-o D:\UnityProjects\MyProject\

Пример конвертации отчёта в формат HTML на Unix-like системах:

plog-converter –t fullhtml ./ ./MyProject.plog

Эти команды конвертируют отчёт в формат HTML, который удобен для просмотра в браузере и для рассылки по почте. Пример отчёта в формате FullHTML:

UnityGuide_ru/image7.png

Проблемы при анализе

The solution file has two projects named "UnityEngine.UI"

Если в Unity в настройках генерации C# проектов выбрана опция "Player projects", то происходит создание solution файла с дубликатами названий проектов. При анализе проекта с помощью PVS-Studio это может приводить к ошибке следующего вида: The solution file has two projects named "UnityEngine.UI". Для проведения анализа эту опцию требуется отключить.

UnityGuide_ru/image9.png

После этого может понадобиться заново сгенерировать проектные файлы. Для этого есть кнопка ниже – "Regenerate project files".

После того как дубликаты из sln-файла пропадут, анализ должен работать нормально. Подробнее эта проблема с повторяющимися именами проектов описана здесь.

Не изменяйте файлы проекта во время анализа

Во время анализа мы рекомендуем не совершать действий, которые могут привести к изменению sln/csproj файлов или файлов исходного кода. Например, это такие действия, как изменение или создание Assembly Definitions и Assembly Definition References, добавление новых скриптов.