• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Лучшие практики форматирования для C# скриптов в Unity

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.
Нажмите здесь.

Хотя может не быть единственно правильного способа форматирования вашего C# кода, согласование единого стиля в вашей команде может привести к более чистой, читаемой и масштабируемой кодовой базе. Эта страница предлагает советы и ключевые моменты, которые следует учитывать для ваших классов, методов и комментариев при создании собственного руководства по стилю.

Примечание: Рекомендации, представленные здесь, основаны на тех, что предоставлены Microsoft. Лучшие правила руководства по стилю кода - это те, которые соответствуют потребностям вашей команды.

Вы можете найти пример руководства по стилю кода здесь или скачать полную электронную книгу, Используйте руководство по стилю C# для чистого и масштабируемого игрового кода (издание Unity 6).

  • Форматирование вашего кода
  • Свойства
  • Свойства с телом выражения
  • Авто-реализуемое свойство
  • Сериализация
  • Стиль фигурных скобок или отступов
  • Решите, какой будет единый отступ
  • Не пропускайте фигурные скобки
  • Сохраняйте фигурные скобки для ясности в многострочных выражениях
  • Стандартизируйте операторы switch

Форматирование вашего кода

Вместе с именованием форматирование помогает уменьшить неопределенность и улучшить ясность кода. Следуя стандартизированному руководству по стилю, проверки кода становятся менее о том, как выглядит код, и больше о том, что он делает.

Опустите, расширьте или измените эти примерные правила, чтобы они соответствовали потребностям вашей команды.

В любом случае учитывайте, как ваша команда будет применять каждое правило форматирования, а затем пусть все применяют его единообразно. Обратитесь к стилю вашей команды, чтобы разрешить любые несоответствия.

Учитывайте каждое из следующих предложений по форматированию кода при настройке вашего руководства по стилю разработки Unity.

Свойства

Свойство предоставляет гибкий механизм для чтения, записи или вычисления значений класса. Свойства ведут себя так, как будто они являются публичными переменными-членами, но на самом деле это специальные методы, называемые аксессорами. Каждое свойство имеет метод get и set для доступа к приватному полю, называемому резервным полем.

Таким образом, свойство инкапсулирует данные, скрывая их от нежелательных изменений со стороны пользователя или внешних объектов. У геттера и сеттера есть свои собственные модификаторы доступа, позволяющие вашему свойству быть доступным для чтения и записи, только для чтения или только для записи.

Вы также можете использовать аксессоры для проверки или преобразования данных (например, проверить, соответствует ли данные вашему предпочтительному формату, или изменить значение на определенную единицу).

Синтаксис для свойств может варьироваться, поэтому ваше руководство по стилю должно определять, как их форматировать. Используйте эти советы, чтобы поддерживать свойства в вашем коде последовательными.

Свойства с телом выражения

Используйте свойства с телом выражения для однострочных, только для чтения свойств (=>): Это возвращает приватное резервное поле.

Авто-реализуемое свойство

Все остальное использует более старый { get; set; } синтаксис: Если вы просто хотите открыть публичное свойство, не указывая резервное поле, используйте Авто-реализуемое свойство. Примените синтаксис с телом выражения для аксессоров set и get. Не забудьте сделать сеттер приватным, если не хотите предоставлять доступ на запись. Выравнивайте закрывающую фигурную скобку с открывающей для многострочных блоков кода.

Сериализация

Сериализация скриптов — это автоматический процесс преобразования структур данных или состояний объектов в формат, который Unity может сохранить и восстановить позже. По соображениям производительности Unity обрабатывает сериализацию иначе, чем в других средах программирования.

Сериализованные поля отображаются в инспекторе, но вы не можете сериализовать статические, константные или только для чтения поля. Они должны быть либо публичными, либо помеченными атрибутом [SerializeField]. Unity сериализует только определенные типы полей, поэтому обратитесь к странице документации для полного набора правил сериализации.

Соблюдайте несколько основных рекомендаций при работе с сериализованными полями:

  • Используйте [SerializeField] атрибут: Атрибут SerializeField может работать с приватными или защищенными переменными, чтобы они отображались в Инспекторе. Это лучше инкапсулирует данные, чем пометка переменной public, и предотвращает перезапись ее значений внешним объектом.
  • Используйте атрибут Range, чтобы установить минимальные и максимальные значения: Атрибут [Range(min, max)] удобен, если вы хотите ограничить то, что пользователь может назначить числовому полю. Он также удобно представляет поле в виде ползунка в Инспекторе.
  • Группируйте данные в сериализуемых классах или структурах, чтобы очистить Инспектор: Определите публичный класс или структуру и отметьте его атрибутом [Serializable]. Определите публичные переменные для каждого типа, который вы хотите сделать доступным в Инспекторе.

Ссылайтесь на этот сериализуемый класс из другого класса. Результирующие переменные появляются в сворачиваемых единицах в Инспекторе.

Сериализуемый класс
СЕРИАЛИЗУЕМЫЙ КЛАСС ИЛИ СТРУКТУРА МОГУТ ПОМОЧЬ ОРГАНИЗОВАТЬ ИНСПЕКТОР.

Стиль фигурных скобок или отступов

Существует два распространенных стиля отступов в C#:

  • Стиль Allman, также известный как стиль BSD (из BSD Unix), помещает открывающие фигурные скобки на новую строку.
  • Стиль K&R, или "один истинный стиль скобок", сохраняет открывающую скобку на той же строке, что и предыдущий заголовок.

Существуют и вариации этих стилей отступов. Примеры в этом руководстве используют стиль Allman из Руководства по проектированию Microsoft Framework. Независимо от того, какой стиль вы выберете в команде, убедитесь, что все следуют одному и тому же стилю отступов и скобок.

Решите, какой будет единый отступ

Обычно отступ составляет два или четыре пробела. Убедитесь, что все в вашей команде согласны с настройкой в ваших предпочтениях редактора, не разжигая войну табуляций против пробелов. Обратите внимание, что Visual Studio предоставляет возможность конвертировать табуляции в пробелы.

В Visual Studio (Windows) перейдите в Инструменты > Параметры > Текстовый редактор > C# > Табуляция.

В Visual Studio для Mac перейдите в Настройки > Исходный код > Исходный код C#. Выберите стиль текста, чтобы настроить параметры.

Вкладки C Sharp
НАСТРОЙКИ ВКЛАДОК В VISUAL STUDIO ДЛЯ WINDOWS

Не пропускайте фигурные скобки

Не пропускайте скобки – даже для однострочных операторов. Скобки увеличивают согласованность, что делает ваш код более читаемым и поддерживаемым. В этом примере фигурные скобки четко отделяют действие, DoSomething, от цикла.

Если позже вам нужно будет добавить строку отладки или выполнить DoSomethingElse, фигурные скобки уже будут на месте. Сохранение условия на отдельной строке позволяет легко добавить точку останова.

Сохраняйте фигурные скобки для ясности в многострочных выражениях

Не удаляйте фигурные скобки из вложенных многострочных операторов. Удаление фигурных скобок в этом случае не вызовет ошибку, но, вероятно, приведет к путанице. Применяйте фигурные скобки для ясности, даже если они необязательны. Фигурные скобки также обеспечивают, что изменения, такие как добавление новой логики, могут быть выполнены безопасно, не требуя рефакторинга окружающей структуры.

Стандартизируйте операторы switch

Форматирование может варьироваться, поэтому задокументируйте предпочтения вашей команды в вашем руководстве по стилю и стандартизируйте ваши switch операторы соответственно.

Вот один пример, где вы выравниваете операторы case. Обычно рекомендуется также включать оператор по умолчанию. Даже если оператор по умолчанию не нужен (например, в случаях, когда все возможности охвачены), его включение гарантирует, что код готов обрабатывать неожиданные значения.

  • Горизонтальное расстояние
  • Добавьте пробелы
  • Пробел после запятой
  • Нет пробелов после скобок
  • Нет пробела между функцией и скобками
  • Избегайте пробелов внутри скобок
  • Пробелы перед условиями управления потоком
  • Пробелы с операторами сравнения
  • Советы по читаемости
  • Вертикальное расстояние и области
  • Форматирование кода в Visual Studio
  • Настройте файл .editorconfig

Горизонтальное расстояние

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

Добавьте пробелы

Добавьте пробелы, чтобы уменьшить плотность кода.Дополнительные пробелы могут создать ощущение визуального разделения между частями строки, улучшая читаемость.

Пробел после запятой

Используйте один пробел после запятой между аргументами функции.

Нет пробелов после скобок

Не добавляйте пробел после скобок и аргументов функции.

Нет пробела между функцией и скобками

Не используйте пробелы между именем функции и скобками.

Избегайте пробелов внутри скобок

По возможности избегайте пробелов внутри скобок.

Пробелы перед условиями управления потоком

Используйте один пробел перед условиями управления потоком и добавьте пробел между оператором сравнения потока и скобками.

Пробелы с операторами сравнения

Используйте один пробел перед и после операторов сравнения.

Советы по читаемости

Держите строки короткими. Рассмотрите горизонтальные пробелы: Определите стандартную ширину строки (80-120 символов). Разбейте длинную строку на более мелкие операторы, а не позволяйте ей переполняться.

Соблюдайте отступы/иерархию: Выравнивайте ваш код для повышения читаемости.

Не используйте выравнивание по столбцам, если это не нужно для читаемости: Этот тип пробелов выравнивает переменные, но может затруднить сопоставление типа с именем.

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

Вертикальное расстояние и области

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

  • Группируйте зависимые и/или похожие методы вместе: Код должен быть логичным и последовательным. Держите методы, которые делают одно и то же, рядом друг с другом, чтобы кто-то, читающий вашу логику, не прыгал по файлу.
  • Используйте вертикальное пространство в своих интересах, чтобы отделить различные части вашего класса: Например, вы можете добавить две пустые строки между:
  • Объявления переменных и методы
  • Классы и интерфейсы
  • блоки if-then-else (если это помогает читаемости)

Сведите это к минимуму и отметьте в своем руководстве по стилю, где это применимо.

Использование регионов в вашем коде

Директива #region позволяет вам сворачивать и скрывать секции кода в файлах C#, делая большие файлы более управляемыми и удобочитаемыми.

Тем не менее, если вы следуете общим рекомендациям для классов из этого руководства, размер вашего класса должен быть управляемым, а директива #region избыточной. Разбейте ваш код на более мелкие классы, вместо того чтобы скрывать блоки кода за регионами. Вы будете менее склонны добавлять регион, если исходный файл короткий.

Примечание: Многие разработчики считают регионы запахами кода или антипаттернами. Решите в команде, на какой стороне дебатов вы находитесь.

Форматирование кода в Visual Studio

Не отчаивайтесь, если эти правила форматирования кажутся подавляющими. Современные IDE делают настройку и соблюдение их эффективными. Вы можете создать шаблон правил форматирования, а затем преобразовать файлы вашего проекта сразу.

Чтобы установить правила форматирования для редактора скриптов:

  • В Visual Studio(Windows) перейдите в Инструменты > Параметры. Найдите Редактор текста > C# > Форматирование стиля кода. Используйте настройки для изменения параметров Общие, Отступ, Новые строки, Пробелы и Перенос.
  • В Visual Studio для Mac выберите Visual Studio > Настройки, затем перейдите в Исходный код > Форматирование кода > Исходный код C#. Выберите Политику вверху. Затем установите свои пробелы и отступы на вкладке Стиль текста. На вкладке Формат C# отрегулируйте параметры Отступ, Новые строки, Пробелы и Перенос.

Если в любое время вы хотите заставить свой файл скрипта соответствовать руководству по стилю:

  • В Visual Studio (Windows) перейдите в Правка > Дополнительно > Форматировать документ (Ctrl + K, Ctrl + D горячая клавиша). Если вы хотите только отформатировать пробелы и выравнивание табуляции, вы также можете использовать Запустить очистку кода (Ctrl + K , Ctrl + E) внизу редактора.
  • В Visual Studio для Mac перейдите в Правка > Форматировать документ (Ctrl + I горячая клавиша)

На Windows вы также можете поделиться настройками редактора из Инструменты > Импорт и экспорт настроек. Экспортируйте файл с форматированием кода C# по стилевому руководству, а затем пусть каждый член команды импортирует этот файл.

Visual Studio упрощает следование стилевым рекомендациям. Форматирование становится таким же простым, как использование сочетания клавиш.

Примечание. Вы можете настроить файл EditorConfig вместо импорта и экспорта настроек Visual Studio. Это позволяет вам легче делиться форматированием между различными IDE, и это имеет дополнительное преимущество работы с системой контроля версий. Смотрите опции правил стиля кода .NET для получения дополнительной информации.

Хотя это не специфично для чистого кода, обязательно ознакомьтесь с 10 способами ускорить ваш рабочий процесс программирования в Unity с Visual Studio. Чистый код гораздо легче форматировать и рефакторить, если вы применяете эти советы по повышению продуктивности.

Предпочтения C Sharp
ОКНО ПРЕДПРОСМОТРА ПОКАЗЫВАЕТ ВАШИ ВЫБОРЫ В РУКОВОДСТВЕ ПО СТИЛЮ.

Настройте файл .editorconfig

Чтобы настроить файл .editorconfig в Visual Studio Code, выполните следующие шаги:

  • В корневом каталоге вашего проекта создайте новый файл с именем .editorconfig.
  • Откройте файл .editorconfig и добавьте желаемые настройки конфигурации.

Вот пример конфигурации для C#:

# самый верхний файл EditorConfig

root = true

# Unix-стиль новых строк с новой строкой в конце каждого файла

[*]

end_of_line = lf

insert_final_newline = true

# 4 пробела для отступа

[*.cs]

indent_style = space

indent_size = 4

charset = utf-8

trim_trailing_whitespace = true

# Отступ с помощью табуляции для Makefiles

[Makefile]

indent_style = tab

# Специфические настройки для JSON файлов

[*.json]

indent_style = space

indent_size = 2

Получите больше советов по стилю кода

Узнайте больше о соглашениях об именовании здесь или ознакомьтесь с полной электронной книгой. Вы также можете ознакомиться с нашим подробным примером руководства по стилю кода.