Version: 5.3 (switch to 5.4b)
Legacy Topics
Настройка Asset Server

Asset Server (Только Pro)

Обзор Unity Asset Server

Please be aware that the Asset Server is now a legacy product. We recommend using Plastic SCM or Perforce for version control in your Unity project.

PlasticSCM PerForce

Unity Asset Server это система контроля версий и ресурсов, с графическим интерфейсом, интегрированная в Unity. Она предназначена для использования членами команды, которые работают над проектом на разных компьютерах, как в одном офисе, так и удаленно. Asset Server хорошо оптимизирован для обработки больших бинарных ресурсов, чтобы справляться с крупными много-гигабайтными проектами. При загрузке ресурсов, настройки импорта (Import Settings), и другие мета-данные каждого ресурса, также загружаются на сервер. Переименование и перемещение файлов лежит в основе системы, и хорошо поддерживается.

Он доступен только для Unity Pro. Для приобретения Unity Pro, пожалуйста, посетите магазин Unity на http://unity3d.com/store

Note that Asset Server is a legacy product and is no longer maintained.

Впервые пользуетесь системой контроля версий?

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

В некотором смысле, Asset Server работает как резервная копия папки вашего проекта. Вы не напрямую управляете содержимым Asset Server во время работы с проектом. Вы вносите изменения в свой проект локально, затем, когда вы закончите, вы коммитите изменения (Commit Changes) в проекте на сервер. Это делает идентичными ваш локальный проект и проект на Asset Server.

Теперь, когда ваши коллеги разработчики внесли изменения, проект на Asset Server идентичен с их проектом, но не с вашим. Для синхронизации локального проекта вы должны обновить его с сервера (Update from Server). Теперь любые изменения, которые сделали члены вашей команды, будут загружены с сервера в локальный проект.

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

Настройка Asset Server

Установка Asset Server производится один раз для сервера, а настройка клиента производится для каждого пользователя. Вы можете узнать о том, как это сделать на странице Настройка Asset Server.

В остальной части этого руководства объясняется как развернуть, администрировать, и регулярно использовать Asset Server.

Ежедневное использование Asset Server

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

Начало работы

Это лучший способ присоединиться к команде, у которой уже накоплено много изменений по проекту в Asset Server.

  1. Создайте новый пустой проект без импортированных пакетов Перейдите в меню Edit->Project Settings->Editor и выберите Asset Server как режим контроля версий
  2. В главном меню выберите Window->Version Control Кликните на кнопку Connection
  3. Введите имя пользователя и пароль (предоставленный вашим администратором Asset Server) Кликните Show Projects и выберите нужный проект
  4. Click Connect
  5. Click the Update tab
  6. Нажмите на кнопку Update
  7. Если происходит конфликт, отмените все локальные изменения
  8. Дождитесь завершения обновления
  9. Вы готовы продолжать

Основы рабочего процесса

При использовании Asset Server’а в команде из нескольких человек, в целом, хорошая практика обновлять (Update) все изменённые ассеты с сервера в процессе работы и коммитить (Commit) ваши изменения под конец рабочего дня, или когда вы завершили свою работу. Вам также следует коммитить изменения при достижении определённого прогресса в работе над чем-то, даже если это произойдёт в середине дня. Рекомендуется часто и регулярно коммитить на сервер свои изменения.

Понимание Server View

Server View это окно сервера ресурсов, к которому вы подключены. Вы можете открыть это окно, выбрав в меню Window->Version Control.

Вкладка <span class="doc-keyword">Overview</span>
Вкладка Overview

Server View разбит на вкладки: Overview, Update, и Commit. Overview покажет любые отличия между вашим локальным проектом и последней версией на сервере. Здесь можно быстро закоммитить локальные изменения или скачать последние обновления. Update покажет последние изменения на сервере и позволит их скачать в ваш локальный проект. Commit позволяет создать Changeset и закоммитить его на сервер для того, чтобы его могли скачать остальные.

Соединение с сервером

Прежде чем вы сможете использовать сервер ресурсов, к нему нужно подключиться. Для этого, нажмите кнопку Connection, что приведет вас к экрану соединения:

Экран подключения к Asset Server
Экран подключения к Asset Server

Здесь вам нужно заполнить следующее:

  1. Адрес сервера
  2. Имя Пользователя
  3. Пароль

Клик по Show projects покажет все доступные проекты в Asset Server. Вы можете выбрать проект, к которому вы желаете подключиться, нажатием кнопки Connect. Учтите, что имя пользователя и пароль для работы с Asset Server вам следует получить у системного администратора. Ваш системный администратор создал аккаунты при установке Asset Server.

Обновление с сервера

Чтобы скачать все обновления с сервера, выберите вкладку Update во вкладке Overview и вы увидите список последних закоммиченных наборов изменений. Выбрав один из них, вы сможете увидеть что изменилось в проекте, а также, сообщение коммита. Кликните Update и вы начнёте скачивать все наборы изменений.

Вкладка <span class="doc-keyword">Update</span>
Вкладка Update

Коммит изменений на сервер

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

Вкладка <span class="doc-keyword">Commit</span>
Вкладка Commit

Теперь вы сможете увидеть все локальные изменения в проекте с момента последнего обновления, и, кроме того, вы сможете выбрать изменения для коммита на сервер. Вы можете добавлять изменения в набор изменений вручную перетаскивая их в панель changeset, либо с помощью кнопок, расположенных под полем ввода сообщения коммита. Запомните, что следует вводить сообщение коммита (поле commit message), т.к. позже это поможет вам при сравнении версий или при откате к предыдущим версиям (оба случая описаны ниже).

Разрешение конфликтов

Работа нескольких людей над одним набором данных неизбежно приведёт к конфликтам. Запомните, что при этом не нужно паниковать! Если возникнет конфликт, при обновлении проекта отобразится диалог Conflict Resolution.

Экран <span class="doc-keyword">Conflict Resolution</span>
Экран Conflict Resolution

В нём вам сообщат про все имеющиеся конфликты и предоставят несколько опций для разрешения каждого из них. Для каждого из конфликтов вы можете выбрать Skip Asset (не скачивать этот ассет с сервера), Discard My Changes (полностью перезаписать вашу локальную версию ассета) или Ignore Server Changes (игнорировать изменения на сервере и позволить перезаписать серверные изменения вашими локальными при следующем коммите). Кроме того, вы можете выбрать Merge для текстовых ассетов, таких как скрипты, чтобы произвести слияние серверной и локальной версий.

Важно: если вы выберите отмену локальных изменений (Discard My Changes), ассет обновится на последнюю версию с сервера (т.е., будут включены изменения внесённые другими пользователями за время вашей работы). Если вы желаете вернуть ассет к состоянию, которое у него было на момент начала работы над ним, вам следует откатить ассет до определённой версии, которую вы ранее коммитили на сервер (см. раздел Просмотр истории ревизий и откат ассетов ниже).

Если конфликт произошёл во время коммита локальных изменений, Unity откажется коммитить ваши изменения и сообщит вам о существовании конфликта. Для разрешения конфликтов выберите Update. Ваши локальные изменения не будут автоматически перезаписаны. На этом этапе вы увидите диалог Conflict Resolution и сможете руководствоваться приведёнными выше инструкциями.

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

Asset Server хранит все загруженные версии ассета в своей базе данных, так что в любое время вы можете откатить вашу локальную версию к более ранней версии. Вы можете восстановить как весь проект, так и отдельные файлы. Для отката к ранней версии файла или проекта, выберите вкладку Overview и нажмите на кнопку Show History, расположенную в разделе Asset Server Actions. Вы увидите список всех закоммиченных наборов изменений и сможете выбрать и восстановить любой файл или весь проект к более ранней версии.

Диалог <span class="doc-keyword">History</span>
Диалог History

Здесь вы можете увидеть номер версии и добавленные комментарии у каждой из версий ассета или проекта. Это одна из причин, по которой полезно оставлять осмысленные и развёрнутые комментарии при коммите изменений. Выберите любой ассет для просмотра его истории или весь проект (Entire Project) для всех изменений в проекте. Найдите нужную вам ревизию. Вы можете выбрать либо всю ревизию, либо отдельный ассет в ревизии. Затем нажмите на Download Selected File для замены вашего локального ассета копией из выбранной ревизии. Кнопка Revert All Project откатит весь проект к выбранной ревизии.

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

Если вы просто желаете отменить изменения в локальной копии, нет необходимость откатываться. Вы можете отказаться от этих локальных изменений нажав Discard Changes в главном окне Asset Server. В ваш локальный проект тут же будет скачана последняя версия с сервера.

Сравнение версий ассетов

Если вы желаете посмотреть различия между определёнными версиями, вы можете просто взять и сравнить их. Чтобы это сделать, откройте окно History, выберите ревизию, ассет, который вы желаете сравнить и нажмите Compare to Local Version. Если вы желаете сравнить две различные ревизии ассета - кликните по ревизии правой кнопкой мыши и в контекстном меню выберите Compare to Another Revision. Затем найдите ревизию для сравнения и выберите её.

Важно: эта функция требует наличия установленной одной из поддерживаемых diff/merge утилит:

Восстановление удалённых ассетов

Удаление локального ассета и коммит этого удаления на сервер на самом деле не удалит этот ассет навсегда. Точно так же, как можно восстановить любую предыдущую версию ассета, удалённый ассет можно восстановить через окно History из вкладки Overview.

Диалог <span class="doc-keyword">History</span>
Диалог History

Разверните элемент Deleted Assets, найдите и выберите ассеты из списка и нажмите Recover. Выбранные ассеты будут скачаны и заново добавлены в локальный проект. Если папка, в которой находился ассет в момент удаления, всё ещё существует, ассет будет восстановлен в ней, иначе он будет добавлен в корень папки Assets локального проекта.

Лучшие методики работы и распространенные проблемы

Это подборка лучших методик работы и решений распространённых проблем, которая поможет вам в использовании Asset Server:

  1. Постоянно делайте резервные копии
    • Поддерживайте резервное копирование вашей базы данных. Очень важно это делать. При несчастном случае, будь то аппаратная проблема, вирус, ошибка пользователя и т.д., вы можете потерять всю проделанную работу. Поэтому, используйте системы резервного копирования. В сети можно найти множество ресурсов по настройке систем резервного копирования.
  2. Останавливайте сервер перед выключением компьютера
    • Это может предотвратить генерацию “fast shutdowns” в логе PostgreSQL (Asset Server). Если это происходит, Asset Server’у придётся провести восстановление из-за неверного завершения работы. Это может занять много времени, если у вас большой проект с множеством коммитов.
  3. Сброс вашего пароля через консоль

  4. Вы можете сбросить пароль непосредственно из оболочки, консоли или командной строки с помощью следующей команды:

    `psql -U unitysrv -d template1 -c"alter role admin with password 'MYPASSWORD'"`
    
  5. Не удается подключиться к Asset Server

  6. Возможно, срок действия пароля истек. Попробуйте сбросить свой пароль.
    • Кроме того, имя пользователя чувствительно к регистру: “Admin” != “admin”. Убедитесь, что вы используете верный регистр.
  7. Убедитесь, что сервер действительно работает:

  8. На OS X или Linux вы можете ввести в терминале: ps -aux

  9. В Windows вы можете использовать диспетчер задач.
    • Убедитесь, что Asset Server запущен не более чем на одном компьютере в вашей сети. Иначе вы можете соединяться с неверным сервером.
  10. Asset Server не работает в 64-х битной версии Linux

  11. Asset Server способен нормально работать на компьютере с 64-х битной версией Linux, если установить 32-х битные версии необходимых пакетов. Для этого можно использовать “dpkg -i –force-architecture”.

  12. Используйте логи Asset Server для получения более подробной информации
    • Windows:
      • ProgramFiles\Unity\AssetServer\log
    • OS X:
      • /Library/UnityAssetServer/log
  13. “The application failed to initialize properly (0xc0000135)” в Windows XP

  14. В этом случае необходим Service Pack 2, и вы должны установить .NET 2.0.

Изучение Asset Server окончено

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

Legacy Topics
Настройка Asset Server