Интеграции управления версиями
Unity имеет интеграции с двумя системами управления версиями: Перфорс и Unity Контроль версий (UVCS). Для использования управление версиями интеграции в Unity, вам нужно иметь либо Перфорс или UVCS сервер настроен для вашего Unity Project.
Настройка управления версиями в Unity
Откройте Unity Project, перейдите в Изменить > Project Настройки, а затем выберите категорию Управление версиями.
| Свойство | Описание | |
|---|---|---|
| Режим | Выберите режим управления версиями. | |
| Скрытые мета файлы | Скройте файлы .meta в просмотрщике файлов вашей операционной системы. Unity не показывает файлы .meta в представлении Project, независимо от выбранного режима. | |
| Видимые метафайлы | Выберите эту опцию, чтобы работать с системой управления версиями, которую Unity не поддерживает. Это настройка по умолчанию. Затем вы можете управлять исходными Ассетами и метаданными для этих Ассетов с помощью системы управления версиями по вашему выбору. | |
| Перфорс | Выберите эту опцию, если вы используете Перфорс в качестве системы управления версиями. | |
| Пользовательское имя | Введите имя пользователя, связанное с вашей учетной записью Perforce. Это свойство видно, только если Режим установлено на Перфорс. | |
| Пароль | Введите пароль, связанный с вашей учетной записью Perforce. Это свойство отображается только тогда, когда Режим установлено на Перфорс. | |
| Рабочая область | Введите ваше рабочее пространство. Например, Example**Workspace**1. Это свойство отображается, только если Режим установлено на Перфорс. |
|
| Сервер | Введите сервер, на котором находится ваш Unity Project. Например, localhost:1666. Это свойство видно только тогда, когда Режим установлено на Перфорс. | |
| Хост | Введите имя узла, которое компьютер должен олицетворять. Например, workstation123.perforce.com. Это свойство отображается только в том случае, если Режим установлено на Перфорс. | |
| Уровень журнала | Выберите, сколько информации об управлении версиями будет получено в журнале консоли Unity. | |
| Вербос | Записывать в журнал все операции, связанные с управлением версиями. Эта опция обеспечивает очень подробное ведение журнала, и полезна, если вы хотите отладывать настройки управления версиями. Это свойство видно только, когда Режим установлено на Перфорс. | |
| Информация | Журнал ошибки, предупреждения и сведения, связанные с управлением версиями. | |
| Уведомление | Журнал ошибок и предупреждений. | |
| Смертельный исход | Unity выводит в консоль только фатальные ошибки. | |
| Статус | Отображает информацию о состоянии подключения к системе управления версиями. Если вы не подключены, выберите Connect для подключения к настроенной вами системе. Это свойство видно только тогда, когда Режим установлено на Перфорс. | |
| Автоматическое добавление | Когда эта настройка включена, файлы автоматически добавляются в систему управления версиями, когда вы добавляете их в Project, либо через Редактор, либо через папку на диске. Когда эта настройка отключена, вам нужно добавлять файлы в систему управления версиями вручную. Эта настройка включена по умолчанию. Это свойство видно только тогда, когда Режим установлено на Перфорс. | |
| Работа вне сети | Включить эту настройку для работы в автономном режиме. Когда эта настройка включена, вам нужно согласовать работу в автономном режиме в P4V или использовать команду reconcile в P4 для обновления хранилища сервера Perforce с работой, выполненной в автономном режиме. Дополнительные сведения см. в Работа в автономном режиме с Perforce. Это свойство видно только тогда, когда Режим установлено на Перфорс. | |
| Асинхронное обновление | Включите эту настройку для использования асинхронных запросов состояния управления версиями. При включении, Perforce обновляет состояние управления версиями файлов без задержки Unity Editor. Используйте эту настройку, когда подключение к серверу управления версиями имеет высокую задержку. Обратите внимание: Асинхронны только запросы состояния. Операции, которые изменяют состояние файлов или требуют актуальных сведений о нём, Unity выполняет синхронно. Это свойство видно только тогда, когда Режим установлено на Перфорс. |
|
| Показать неудачные выводы | Включите это свойство для отображения диалога, когда Perforce не может выполнить операцию извлечения. Это может произойти, если вы потеряете соединение, или если другой пользователь эксклюзивно извлечен Ассет, который вы хотите изменить. Это свойство видно только, когда Режим установлено на Перфорс. | |
| Перезапись неудачных активов извлечения | Когда вы включаете эту настройку, Unity сохраняет любые Assets, которые не могут быть извлечены. Это означает, что Unity принуждает к сохранению в файл, даже если Perforce не может извлечь файл. Это включено по умолчанию. Если вы отключаете это, Unity не принуждает ваши файлы к сохранению, если Perforce не может извлечь их. Это свойство видно только когда Режим установлено на Перфорс. | |
| Умное слияние | Умное Слияние облегчает Unity слияние файлов, имеющих изменения в одной и той же строке. Это полезно, если несколько пользователей одновременно работают над одним и тем же Project. Это свойство видно только тогда, когда Режим установлено на Перфорс. | |
| Выкл. | Отключить умное слияние. | |
| Запрос | Включить умное слияние, но получать уведомление перед слиянием, если возникает конфликт. Это параметр по умолчанию. | |
| Преслияние | Автоматически использовать умное слияние. | |
| Пакеты версий вне Project | Отслеживает изменения в пакетах, которые находятся на диске вне корневой папки проекта Unity, пока они находятся в локальной рабочей области. Это свойство видно, только когда Режим установлено на Перфорс. | |
| Наложение значков | Включите эту настройку для отображения значков состояния управления версиями в Редакторе. Это свойство видно только тогда, когда Режим установлено на Перфорс. |
Настроить Управление версиями настройки, затем выберите Подключиться кнопку рядом с областью статуса, чтобы подключиться к системе управления версиями. Unity подключается к системе, Подключено отображается в области статуса.
Чтобы настроить инструмент управления ревизиями, откройте Настройки и затем выберите раздел Внешние инструменты. Вы можете выбрать новый инструмент в Управление ревизиями Различие/Слияние.
Использование управления версиями в Unity
Когда вы настраиваете Unity Editor для работы с вашей системой управления версиями, вы можете выполнять операции управления версиями через Редактор, а не в клиенте управления версиями. Для этого щелкните правой кнопкой мыши ассет в представлении Project.
Операции управления версиями различаются в зависимости от используемого средства управления версиями. В следующей таблице показаны действия, доступные для каждого средства управления версиями:
| Операция управления версиями | Описание | Перфорс | UVCS |
|---|---|---|---|
| Получить последний | Это обновляет файлы на вашей машине, чтобы они соответствовали файлам в системе управления версиями. | Да | Нет. Чтобы получить последние изменения и обновить файл, вам нужно использовать окно управления версиями (Окно > Управление версиями > Внешний поставщик). |
| Представить | Отправляет текущее состояние файлов в систему контроля версий. | Да | Да |
| Проверка | Разрешает изменения в файлах. | Да | Да |
| Выезд (другое) | Выберите, выгружать ли и ресурс, и его файл .meta, или только ресурс, или только файл .meta. | Да | Нет |
| Отметить Добавить | Добавляет файлы в систему управления версиями. | Да | Да |
| Вернуть | Отбрасывает изменения, чтобы открыть измененные файлы. | Да | Да |
| Вернуть без изменений | Удаляет состояние извлечения из файлов, которые ранее были извлечены, но не были изменены. | Да | Да |
| Разрешение конфликтов | Разрешение конфликтов в файлах, измененных несколькими пользователями. | Да | Нет. Конфликты появляются в меню управления версиями, но вам нужно разрешить их в UVCS GUI. |
| Блокировка | Запрещает другим пользователям отправлять изменения в файлы. | Да | Нет. Чтобы заблокировать или разблокировать файлы в UVCS, вы должны изменить конкретный файл блокировки UVCS внешне. Для более подробной информации, см. страницу UVCS Интеграция. |
| Разблокировка | Разблокирует блокировку и позволяет любому пользователю фиксировать изменения. | Да | Нет. Чтобы заблокировать или разблокировать файлы в UVCS, вы должны изменить конкретный файл блокировки UVCS внешне. Для более подробной информации, см. страницу UVCS Интеграция. |
| Различия | Сравнивает различия между локальными файлами на вашем компьютере и файлами на сервере. Вы можете выбрать, чтобы сравнивать только файл Asset или файл Asset и его файл .meta. | Да | Да |
Извлечение файлов
В некоторых системах управления версиями, таких как Perforce, версированные файлы по умолчанию доступны только для чтения и требуют получения их перед редактированием (если только не включена настройка Работа вне сети). При работе с версированными ресурсами из Редактора, Inspector отображает кнопку Вызов, которая позволяет редактировать файл. Кроме того, инспекторы настроек Project имеют кнопку Вызов, которую можно использовать для получения конкретных настроек Project.
Если у вас есть пользовательский скриптовый код Редактора, который отключает части другого пользовательского инструмента редактирования для ресурсов только для чтения, или если вы вручную записываете в версируемые файлы, используйте AssetDatabase.IsOpenForEdit и AssetDatabase.MakeEditable APIs для проверки редактируемости файла и для выполнения операций извлечения.
Интеграция Управления Версиями также подвергает риску обратные вызова Provider.PreCheckoutCallback и Provider.PreSubmitCallback C# для логики проверки операций управления версиями.
Unity записывает на диск любые Ассеты, которые вы изменяете или помечаете как изменённые в Редакторе, когда он выполняет операцию Save Project. Ассеты затем извлекаются из управления версиями, если это необходимо. Это может привести к извлечению Ассетов, даже если никаких фактических изменений в файле не произошло. Это чаще всего происходит, когда скрипт Редактора вызывает EditorUtility.SetDirty на Ассете, не проверяя, был ли он изменён.
Примечание: Если Unity Если клиент не может фиксировать изменения на клиенте управления версиями (например, если сервер вышел из строя или возникли проблемы с лицензией), он сохраняет изменения в отдельном наборе изменений.
Когда вы сохраняете изменения в файл .scene, Unity автоматически извлекает его. Если вы используете UVCS, он также автоматически извлекает автоматически генерируемые Assets, такие как световые карты.
Окно управления версиями
Для просмотра файлов в вашем списке изменений вы можете использовать окно Управления версиями. Для доступа к окну перейдите в Окно > Управление версиями > Внешний поставщик.
Вкладка Исходящие перечисляет все локальные изменения, ожидающие фиксации в систему управления версиями. Вкладка Входящие перечисляет все изменения, которые необходимо извлечь из системы управления версиями.
Щелкните правой кнопкой мыши Ассеты или списки изменений в окне, чтобы выполнить операции с ними. Чтобы переместить Ассеты между списками изменений, перетащите их из одного списка изменений в заголовок конечного списка изменений.
Иконы
Редактор отображает следующие значки для визуализации состояния управления версиями для файлов и Ассетов:
| Иконы | Цель |
|---|---|
![]() |
Файл добавлен локально и ожидает добавления в систему управления версиями. |
![]() |
Файл добавлен в систему управления версиями другим пользователем и ожидает добавления в систему управления версиями. |
![]() |
Файл извлекается локально. |
![]() |
Файл извлекается другим пользователем удаленно. |
![]() |
При слиянии этого файла возник конфликт, который необходимо разрешить. |
![]() |
Файл был удален локально и ожидает удаления в системе управления версиями. |
![]() |
Файл был удален другим пользователем и ожидает удаления в системе управления версиями. |
![]() |
Файл еще не находится под управлением версиями. Вы можете использовать операцию Mark Add для добавления файла вручную. |
![]() |
Файл заблокирован вами, и другие пользователи не могут изменять его. |
![]() |
Файл заблокирован другим пользователем, и вы не можете изменить его. |
![]() |
Другой пользователь записал новую версию этого файла. Используйте операцию Apply Incoming Changes для получения последней версии. |
![]() |
Сервер запрашивает статус управления версиями этого файла или ожидает ответа. Это появляется только в том случае, если вы используете централизованную систему управления версиями, такую как Perforce. |











