Унити Пацкаге Манагер

Унити је платформа која постоји већ дуже време и која се стално развија. Међутим, када радите у њему са неколико пројеката истовремено, и даље можете наићи на потешкоће у коришћењу уобичајених извора (.цс), библиотека (.длл) и других средстава (слике, звукови, модели, префабови). У овом чланку ћемо говорити о нашем искуству са изворним решењем за такав проблем за Унити.

Унити Пацкаге Манагер

Методе дистрибуције заједничких ресурса

Постоји више од једног начина да се заједнички ресурси користе за различите пројекте, али сваки приступ има своје предности и недостатке.

1. Дуплирање – дуплирамо ресурсе између пројеката „ручно“.

Предности:

  • Погодно за све врсте ресурса.
  • Нема проблема са зависношћу.
  • Нема проблема са ГУИД-овима средстава.

Против:

  • Гиант репоситориес.
  • Не постоји могућност верзије.
  • Потешкоће у праћењу промена у дељеним ресурсима.
  • Потешкоће при ажурирању заједничких ресурса.

2. Гит подмодули — дистрибуција заједничких ресурса преко екстерних подмодула.

Предности:

  • Можете радити са изворима.
  • Можете дистрибуирати имовину.
  • Нема проблема са зависношћу.

Против:

  • Гит искуство је потребно.
  • Гит није баш пријатељски расположен са бинарним датотекама - мораћете да повежете ЛФС.
  • Контрола приступа за спремишта.
  • Потешкоће са надоградњом и деградацијом верзија.
  • ГУИД колизије су могуће и не постоји јасно понашање Унити-а да их реши.

3. НуГет – дистрибуција дељених библиотека преко НуГет пакета.

Предности:

  • Погодан рад са пројектима који не зависе од Унити-а.
  • Погодно управљање верзијама и решење зависности.

Против:

  • Унити не може да ради са НуГет пакетима из кутије (на ГитХуб-у можете пронаћи НуГет Пацкаге Манагер за Унити, који ово поправља, али постоје неке нијансе).
  • Потешкоће у расподели других врста имовине.

4. Унити Пацкаге Манагер – дистрибуција заједничких ресурса кроз изворно решење за Унити.

Предности:

  • Изворни интерфејс за рад са пакетима.
  • Заштита од преписивања .мета датотека у пакетима због ГУИД конфликта.
  • Могућност верзије.
  • Способност дистрибуције свих врста ресурса за Унити.

Против:

  • И даље може доћи до ГУИД сукоба.
  • Не постоји документација за имплементацију.

Последњи метод има више предности него недостатака. Међутим, сада није веома популаран због недостатка документације, па ћемо се на њему детаљно задржати.

Унити Пацкаге Манагер

Унити Пацкаге Манагер (УПМ) је алатка за управљање пакетима. Додат је у Унити 2018.1 и коришћен је само за пакете које је развила Унити Тецхнологиес. Међутим, почевши од верзије 2018.3, постало је могуће додати прилагођене пакете.

Унити Пацкаге Манагер
Интерфејс менаџера пакета Унити

Пакети не завршавају у изворима пројекта (директоријум имовине). Они су у посебном директоријуму %projectFolder%/Library/PackageCache и ни на који начин не утичу на пројекат, њихово једино помињање у изворном коду је у датотеци packages/manifest.json.

Унити Пацкаге Манагер
Пакети у систему датотека пројекта

Извори пакета

УПМ може да користи неколико извора пакета:

1. Систем датотека.

Предности:

  • Брзина имплементације.
  • Не захтева алате треће стране.

Против:

  • Потешкоће у верзији.
  • Заједнички приступ систему датотека је неопходан за све који раде на пројекту.

2. Гит спремиште.

Предности:

  • Све што вам треба је Гит спремиште.

Против:

  • Не можете да прелазите између верзија кроз УПМ прозор.
  • Не ради са свим Гит репозиторијумима.

3. нпм спремиште.

Предности:

  • Потпуно подржава УПМ функционалност и користи се за дистрибуцију званичних Унити пакета.

Против:

  • Тренутно игнорише све стринг верзије пакета осим "-превиев".

У наставку ћемо погледати имплементацију УПМ + нпм. Овај пакет је згодан јер вам омогућава да радите са било којом врстом ресурса и управљате верзијама пакета, а такође у потпуности подржава изворни УПМ интерфејс.

Можете га користити као нпм спремиште Вердаццио. Постоји детаљан документацију, и потребно је само неколико команди за његово покретање.

Постављање окружења

Прво морате да инсталирате ноде.јс.

Креирање пакета

Да бисте креирали пакет, потребно је да поставите датотеку package.json, који ће га описати, у директоријум са садржајем овог пакета. Потребно је да урадите следеће:

Идите у директоријум пројекта у који желимо да направимо пакет.

Покрените команду нпм инит и унесите потребне вредности током дијалога. За име наведите име у формату обрнутог домена, на пример цом.плариум.сомепацкаге.
Да бисте згодно приказали име пакета, додајте својство дисплаиНаме у пацкаге.јсон и попуните га.

Пошто је нпм оријентисан на јс, датотека садржи главна својства и својства скрипте која нам нису потребна, а која Унити не користи. Боље је да их уклоните како не бисте затрпали опис пакета. Датотека би требало да изгледа отприлике овако:

  1. Идите у директоријум пројекта у који желимо да направимо пакет.
  2. Покрените команду нпм инит и унесите потребне вредности током дијалога. За име наведите име у формату обрнутог домена, на пример цом.плариум.сомепацкаге.
  3. Да бисте згодно приказали име пакета, додајте својство дисплаиНаме у пацкаге.јсон и попуните га.
  4. Пошто је нпм оријентисан на јс, датотека садржи главна својства и својства скрипте која нам нису потребна, а која Унити не користи. Боље је да их уклоните како не бисте затрпали опис пакета. Датотека би требало да изгледа отприлике овако:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Отворите Унити и генеришете .мета датотеку за пацкаге.јсон (Унити не види средства без .мета датотека, пакети за Унити се отварају само за читање).

Слање пакета

Да бисте послали пакет потребно је да покренете наредбу: npm publish --registry *адрес до хранилища пакетов*.

Инсталирање и ажурирање пакета преко Унити Пацкаге Манагер-а

Да бисте додали пакет у Унити пројекат, потребно вам је:

  1. Додај у датотеку manifest.json информације о извору пакета. Да бисте то урадили, морате додати својство scopedRegistries и назначите опсеге и изворну адресу на којој ће се претраживати одређени опсеги.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Идите на Унити и отворите прозор менаџера пакета (рад са прилагођеним пакетима се не разликује од рада са уграђеним).
  3. Изаберите Сви пакети.
  4. Пронађите пакет који вам је потребан и додајте га.

Унити Пацкаге Манагер

Рад са изворима и отклањање грешака

Да би извори били повезани са пројектом, потребно је да креирате Дефиниција склопа за пакет.

Коришћење пакета не ограничава опције за отклањање грешака. Међутим, када радите са пакетима у Унити-у, не можете отићи у ИДЕ кликом на грешку у конзоли ако се грешка догодила у пакету. Ово је због чињенице да Унити не види скрипте као засебне датотеке, пошто се приликом коришћења дефиниције асемблера они прикупљају у библиотеку и укључују у пројекат. Када радите са изворима из пројекта, клик на ИДЕ је доступан.

Скрипта у пројекту са повезаним пакетом:

Унити Пацкаге Манагер
Скрипта из пакета са радном тачком прекида:

Унити Пацкаге Манагер

Хитне исправке пакета

Унити пакети додати пројекту су само за читање, али се могу уређивати у кешу пакета. Да бисте то урадили, потребно вам је:

  1. Идите на пакет у кешу пакета.

    Унити Пацкаге Манагер

  2. Направите потребне измене.
  3. Ажурирајте верзију у датотеци package.json.
  4. Пошаљи пакет npm publish --registry *адрес до хранилища пакетов*.
  5. Ажурирајте верзију пакета на исправљену преко УПМ интерфејса.

Конфликти увоза пакета

Приликом увоза пакета може доћи до следећих ГУИД неусаглашености:

  1. Пакет - пакет. Ако се приликом увоза пакета открије да већ додати пакети садрже средства са истим ГУИД-ом, средства са одговарајућим ГУИД-овима из увезеног пакета неће бити додата у пројекат.
  2. Пакет је пројекат. Ако се приликом увоза пакета открије да пројекат садржи средства са одговарајућим ГУИД-овима, тада средства из пакета неће бити додата пројекту. Међутим, средства која зависе од њих ће почети да користе средства из пројекта.

Пренос средстава из пројекта у пакет

Ако пренесете средство из пројекта у пакет док је Унити отворен, његова функционалност ће бити очувана, а везе у зависним средствима ће почети да користе средство из пакета.

То је важно: Када копирате средство из пројекта у пакет, доћи ће до конфликта „Пакет - Пројекат“ описан у горњем одељку.

Могућа решења сукоба

  1. Поновно додељивање ГУИД-ова коришћењем сопствених алгоритама приликом увоза свих средстава да би се елиминисале колизије.
  2. Додавање свих средстава у један пројекат, а затим њихово дељење у пакете.
  3. Креирање базе података која садржи ГУИД-ове свих средстава и спровођење валидације приликом слања пакета.

Закључак

УПМ је ново решење за дистрибуцију заједничких ресурса у Унити-у, које може бити достојна алтернатива постојећим методама. Препоруке описане у чланку засноване су на стварним случајевима. Надамо се да ће вам бити корисни.

Извор: ввв.хабр.цом

Додај коментар