Контроль версий
Контроль версий Будь то Plastic SCM, Git, Perforce или другая система, Unity позволяет выбрать решение для контроля версий, которое лучше всего подходит вам и вашей команде. Unity Editor поддерживает встроенную интеграцию с двумя ведущими системами контроля версий: Perforce и Plastic SCM. Для работы с любой из них в проекте Unity необходимо предварительно настроить соответствующий сервер.
Plastic SCM упрощает контроль версий благодаря лаконичному интерфейсу.
Перед началом работы с системой контроля версий откройте Project Settings > Editor. Убедитесь, что для параметра Asset Serialization Mode выбрано значение Force Text. Unity использует сериализацию для загрузки ресурсов с диска и их сохранения. В режиме Force Text файлы сцен хранятся в текстовом формате, что упрощает слияние изменений в системе контроля версий.
Version Control в окне Project Settings
Откройте Project Settings > Editor > Version Control. В зависимости от
используемой системы контроля версий выберите режим Plastic SCM, Perforce или Visible Meta Files (для внешней системы контроля версий, например Git).
Plastic SCM
Plastic SCM Plastic SCM - рекомендуемая система контроля версий для разработки игр на Unity. Она особенно удобна при работе с большими двоичными файлами (более 500 МБ), поэтому графические ресурсы можно контролировать столь же полно, как и исходный код.
Plastic SCM надёжно создаёт резервные копии как графических, так и программных ресурсов. Кроме того, понятный визуальный интерфейс упрощает ветвление и управление версиями. Вот некоторые ключевые преимущества Plastic SCM: - Скорость: в большой кодовой базе ветви создаются в Plastic SCM значительно быстрее, чем в Perforce или Git. - Простота для пользователей, не работающих с кодом: художники команды могут использовать режим Gluon. Этот упрощённый рабочий процесс позволяет получить рабочую копию своей части проекта, внести изменения и зафиксировать их, скрывая ненужные элементы интерфейса. - Облачный хостинг: Plastic SCM предлагает собственное решение Plastic Cloud Edition, рассчитанное на полностью распределённые команды. Если команда не хочет обслуживать собственные серверы и предпочитает хранить всё в сети, попробуйте Plastic Cloud Edition. - Распределённый контроль версий: настройте отдельные репозитории в удалённых офисах, чтобы команды всегда работали «локально». Это рабочий процесс, похожий на Git, но рассчитанный на больший масштаб. Графический интерфейс позволяет отправлять и получать изменения, а также разрешать удалённые конфликты. - Окно сравнения: Plastic SCM предоставляет полноценный интерфейс для просмотра изменённых, добавленных и удалённых файлов. В графический интерфейс также входит отдельный инструмент сравнения изображений, который помогает сопоставить две версии ресурса текстуры.
При работе с Plastic SCM откройте окно Plastic SCM через меню Window > Plastic SCM, чтобы просмотреть файлы в списке изменений.
Окно Plastic SCM
На вкладке Pending changes перечислены все локальные изменения, ожидающие фиксации в системе контроля версий. Вкладка Incoming changes позволяет просматривать все входящие изменения и конфликты, а также обновлять локальный проект. При изменении проекта в правом верхнем углу окна Plastic SCM появляется уведомление Incoming changes. Дополнительные сведения об окне контроля версий приведены в документации по интеграции систем контроля версий. Также можно посмотреть видео «Контроль версий для игр с Plastic SCM» с конференции Unite Now или начать с книги Plastic SCM. Git Разработчики Unity могут использовать и внешние системы контроля версий, например Git. Однако сначала проект придётся настроить вручную. Чтобы использовать Git с Unity, создайте пустой локальный репозиторий и при необходимости синхронизируйте его с облаком через GitHub. Обязательно подключите Git LFS (Large File Storage), чтобы эффективнее контролировать версии крупных ресурсов, например графики и звука. Unity поддерживает файл .gitignore, который поможет определить, что следует добавлять в репозиторий Git, а что нет. Для более удобной работы с хостингом GitHub установите плагин GitHub for Unity. Это расширение с открытым исходным кодом позволяет просматривать историю проекта, экспериментировать в ветвях, фиксировать изменения и отправлять код на GitHub, не выходя из Unity.
Также обратите внимание на удобные графические клиенты, например GitKraken, SourceTree или GitHub Desktop.
Создание репозитория с помощью GitHub.
Пошаговая настройка Unity для работы с Git показана в видео «Введение в контроль версий», где на примере проекта объясняются основы использования графического клиента GitHub.
Расширение GitHub for Unity
Perforc e Если вы выбрали Perforce в качестве системы контроля версий, управляйте кодом, графикой и ресурсами игрового движка с помощью Helix Core. Helix Core бесплатен для команд до пяти пользователей и 20 рабочих пространств. Perforce обеспечивает хорошую производительность даже для удалённых команд, участники которых находятся в разных странах. Многие крупные и независимые игровые студии используют Perforce как основную систему контроля версий. Для начала: - Выполните настройку, описанную в документации Unity Version Control. - Ознакомьтесь с руководством по настройке Perforce Helix Core для Unity.
- Подробные сведения о Perforce Helix Core приведены в документации Perforce.
Version control Whether it’s Plastic, Git, Perforce, or another system, Unity allows you to choose which source control solution works best for you and your team. Unity has in-Editor integrations with two industry-leading version control systems, Perforce and Plastic SCM. You must have either a Perforce or Plastic SCM server set up for your project to use with Unity.
PlasticSCM makes version control simple with its streamlined interface.
Before using source control, navigate to Project Settings > Editor. Confirm that Asset Serialization Mode is set to Force Text. Unity uses serialization to load and save Assets to and from disk. Force Text means that Unity will store the scene files in a text-based format to help with version control merges.
Version Control in the Project Settings
Navigate to Project Settings > Editor > Version Control. According to your version control system, switch to the mode Plastic SCM, Perforce, or Visible Meta Files (for external source control like Git).
Plastic SCM
Plastic SCM Plastic SCM is our recommended version control system for Unity game development. This solution offers the best experience when dealing with large binary files (>500 MB), so your art assets can have the same level of management as you would expect for your code. Plastic SCM allows you to work knowing that both your art and programming assets are securely backed up. In addition, the intuitive visual interface simplifies branching and versioning. Here are some of the key benefits of Plastic SCM: —
Speed: Creating branches in a large codebase is significantly faster in Plastic than in Perforce or Git.
Simplicity for non-coders: Artists on your team can work in Gluon mode. This simplified workflow allows them to check out their part of the project, work, and commit their changes, while removing irrelevant parts of the interface.
Cloud hosting: Plastic offers a native solution called Plastic Cloud Edition, designed with fully distributed teams in mind. If your team doesn’t want to consider running its own servers and prefers hosting everything online, try Plastic Cloud Edition.
Distributed Version Control: Set up different repositories in remote offices so teams always work “locally.” This is a Git-like workflow at a larger scale. Use the graphical interface to push and pull changes as well as solve remote conflicts.
Diff window: Plastic features a complete interface to view changed, added, or deleted files. The GUI also includes a separate image diff tool to help you compare two revisions of a texture asset.
When using Plastic SCM, open the Plastic SCM window (Window > Plastic SCM) to view the files in your changelist.
PlasticSCM window
The Pending changes tab lists all of the local changes that are pending a commit into version control. The Incoming changes tab allows you to view all incoming changes and conflicts and update your local project. Any changes made to your project prompts an “Incoming changes” notification at the top right of the Plastic SCM window. Refer to the Version control integrations documentation for more information about the Version Control Window. To learn more, watch the Version Control for games with Plastic SCM video from Unite Now, or check out the Plastic SCM Book to get started. Git Unity developers can also use external source control solutions such as Git. This, however, requires some initial manual setup of the project. To use Git with Unity, create an empty repository on your local machine and optionally sync this to the cloud via GitHub. Be sure to include Git LFS (Large File Support) for more efficient version control of your larger assets, like graphics and sound resources. Unity maintains a .gitignore file that can help you decide what should and shouldn’t go into the Git repository. For the added convenience of working with the GitHub hosting service, install the GitHub for Unity plug-in. This open source extension allows you to view your project history, experiment in branches, commit your changes, and push your code to GitHub without leaving Unity.
Also, consider any of the capable visual clients like GitKraken, SourceTree, or GitHub Desktop.
Create a repository using GitHub.
For a walkthrough of setting up Unity with Git, watch the Introduction to Version Control video, which covers the basics of using a visual GitHub client with a sample project.
The GitHub for Unity extension
Perforce If Perforce is your source control of choice, use Helix Core to manage your code, artwork, and game engine assets. Helix Core is free for up to five users and 20 workspaces. Perforce has good performance, even with remote teams distributed around the world. Many AAA or indie game dev studios use Perforce as their primary source control. To use it:
Follow the setup process described in the Unity Version Control documentation.
Read how to set up Perforce Helix Core with Unity.
Consult the Perforce documentation for more detail about Perforce Helix Core.