Unity pakkastjóri

Unity er vettvangur sem hefur verið til í nokkuð langan tíma og er í stöðugri þróun. Hins vegar, þegar þú vinnur í því með nokkrum verkefnum á sama tíma, getur þú samt lent í erfiðleikum með að nota algengar heimildir (.cs), bókasöfn (.dll) og aðrar eignir (myndir, hljóð, líkön, forsmíðar). Í þessari grein munum við tala um reynslu okkar af innfæddri lausn á slíku vandamáli fyrir Unity.

Unity pakkastjóri

Aðferðir til að dreifa sameiginlegum auðlindum

Það eru fleiri en ein leið til að nota sameiginleg úrræði fyrir mismunandi verkefni, en hver aðferð hefur sína kosti og galla.

1. Tvíverkun - við afritum tilföng milli verkefna "með höndunum."

Kostir:

  • Hentar fyrir allar tegundir auðlinda.
  • Engin vandamál með ósjálfstæði.
  • Það eru engin vandamál með eigna-GUID.

Gallar:

  • Risastórar geymslur.
  • Það er enginn möguleiki á útgáfu.
  • Erfiðleikar við að fylgjast með breytingum á sameiginlegum auðlindum.
  • Erfiðleikar við að uppfæra sameiginleg auðlind.

2. Git undireiningar — dreifingu sameiginlegra auðlinda í gegnum ytri undireiningar.

Kostir:

  • Hægt er að vinna með heimildirnar.
  • Þú getur dreift eignum.
  • Engin vandamál með ósjálfstæði.

Gallar:

  • Git reynsla krafist.
  • Git er ekki mjög vingjarnlegur við tvöfaldar skrár - þú verður að tengja LFS.
  • Aðgangsstýring fyrir geymslur.
  • Erfiðleikar við að uppfæra og lækka útgáfur.
  • GUID árekstrar eru mögulegir og það er engin skýr hegðun af hálfu Unity til að leysa þá.

3. NuGet - dreifing á sameiginlegum bókasöfnum í gegnum NuGet pakka.

Kostir:

  • Þægileg vinna við verkefni sem eru ekki háð Unity.
  • Þægileg útgáfa og upplausn á ósjálfstæði.

Gallar:

  • Unity getur ekki unnið með NuGet pakka úr kassanum (á GitHub geturðu fundið NuGet Package Manager fyrir Unity, sem lagar þetta, en það eru nokkur blæbrigði).
  • Erfiðleikar við að dreifa annars konar eignum.

4. Unity Package Manager - dreifing á sameiginlegum auðlindum í gegnum innbyggða lausn fyrir Unity.

Kostir:

  • Innbyggt viðmót til að vinna með pakka.
  • Vörn gegn yfirskrift á .meta skrám í pökkum vegna GUID árekstra.
  • Möguleiki á útgáfu.
  • Geta til að dreifa öllum gerðum auðlinda fyrir Unity.

Gallar:

  • GUID árekstrar geta enn átt sér stað.
  • Engin gögn eru til um framkvæmd.

Seinni aðferðin hefur fleiri kosti en galla. Hins vegar er það ekki mjög vinsælt núna vegna skorts á skjölum og því munum við staldra við það í smáatriðum.

Unity pakkastjóri

Unity Package Manager (UPM) er pakkastjórnunartæki. Það var bætt við í Unity 2018.1 og var aðeins notað fyrir pakka sem voru þróaðir af Unity Technologies. Hins vegar, frá og með útgáfu 2018.3, varð mögulegt að bæta við sérsniðnum pökkum.

Unity pakkastjóri
Unity Package Manager tengi

Pakkarnir lenda ekki í verkefnaheimildum (Eignaskrá). Þau eru í sérstakri skrá %projectFolder%/Library/PackageCache og hafa ekki áhrif á verkefnið á nokkurn hátt, eina umtal þeirra í frumkóðanum er í skránni packages/manifest.json.

Unity pakkastjóri
Pakkar í verkefnaskráakerfinu

Pakkaheimildir

UPM getur notað nokkra pakkagjafa:

1. Skráakerfi.

Kostir:

  • Hraði framkvæmdar.
  • Þarf ekki verkfæri frá þriðja aðila.

Gallar:

  • Erfiðleikar við útgáfu.
  • Sameiginlegur aðgangur að skráarkerfinu er nauðsynlegur fyrir alla sem vinna við verkefnið.

2. Git geymsla.

Kostir:

  • Allt sem þú þarft er Git geymsla.

Gallar:

  • Þú getur ekki skipt á milli útgáfur í gegnum UPM gluggann.
  • Virkar ekki með öllum Git geymslum.

3. npm geymsla.

Kostir:

  • Styður að fullu UPM virkni og er notað til að dreifa opinberum Unity pakka.

Gallar:

  • Hunsar eins og er allar strengjaútgáfur af pakka nema "-preview".

Hér að neðan munum við skoða UPM + npm útfærsluna. Þetta búnt er þægilegt vegna þess að það gerir þér kleift að vinna með hvers kyns auðlindir og stjórna pakkaútgáfum og styður einnig innbyggt UPM viðmót að fullu.

Þú getur notað það sem npm geymsla Verdaccio. Það er ítarlegt skjöl, og aðeins nokkrar skipanir eru nauðsynlegar til að keyra það.

Uppsetning umhverfisins

Fyrst þarftu að setja upp node.js.

Að búa til pakka

Til að búa til pakka þarftu að setja skrána package.json, sem mun lýsa því, í möppuna með innihaldi þessa pakka. Þú þarft að gera eftirfarandi:

Farðu í verkefnaskrána sem við viljum búa til pakka.

Keyrðu npm init skipunina og sláðu inn nauðsynleg gildi í glugganum. Fyrir nafn, tilgreindu nafnið á öfugu lénssniði, til dæmis com.plarium.somepackage.
Til að sýna pakkanafnið á þægilegan hátt skaltu bæta við displayName eigninni við package.json og fylla það út.

Þar sem npm er js-stillt inniheldur skráin aðal- og forskriftareiginleikar sem við þurfum ekki, sem Unity notar ekki. Það er betra að fjarlægja þá til að rugla ekki pakkanum. Skráin ætti að líta einhvern veginn svona út:

  1. Farðu í verkefnaskrána sem við viljum búa til pakka.
  2. Keyrðu npm init skipunina og sláðu inn nauðsynleg gildi í glugganum. Fyrir nafn, tilgreindu nafnið á öfugu lénssniði, til dæmis com.plarium.somepackage.
  3. Til að sýna pakkanafnið á þægilegan hátt skaltu bæta við displayName eigninni við package.json og fylla það út.
  4. Þar sem npm er js-stillt inniheldur skráin aðal- og forskriftareiginleikar sem við þurfum ekki, sem Unity notar ekki. Það er betra að fjarlægja þá til að rugla ekki pakkanum. Skráin ætti að líta einhvern veginn svona út:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Opnaðu Unity og búðu til .meta skrá fyrir package.json (Unity sér ekki eignir án .meta skráa, pakkar fyrir Unity eru opnaðir sem skrifvarandi).

Sendir pakka

Til að senda pakkann þarftu að keyra skipunina: npm publish --registry *адрес до хранилища пакетов*.

Uppsetning og uppfærsla pakka í gegnum Unity Package Manager

Til að bæta pakka við Unity verkefni þarftu:

  1. Bæta við skrá manifest.json upplýsingar um uppruna pakkana. Til að gera þetta þarftu að bæta við eigninni scopedRegistries og tilgreinið umfang og heimildarfang þar sem leitað verður í sérstökum umfangi.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Farðu í Unity og opnaðu pakkastjórnunargluggann (að vinna með sérsniðna pakka er ekkert öðruvísi en að vinna með innbyggða).
  3. Veldu Allir pakkar.
  4. Finndu pakkann sem þú þarft og bættu honum við.

Unity pakkastjóri

Vinna með heimildir og villuleit

Til þess að heimildirnar geti tengst verkefninu þarf að búa til Samkoma Skilgreining fyrir pakkann.

Notkun pakka takmarkar ekki kembiforritið þitt. Hins vegar, þegar unnið er með pakka í Unity, geturðu ekki farið í IDE með því að smella á villu í stjórnborðinu ef villan kom upp í pakkanum. Þetta er vegna þess að Unity lítur ekki á forskriftir sem aðskildar skrár, þar sem þegar samsetningarskilgreiningin er notuð er þeim safnað á bókasafn og innifalið í verkefninu. Þegar unnið er með heimildir úr verkefni er hægt að smella á IDE.

Forskrift í verkefni með tengdum pakka:

Unity pakkastjóri
Handrit úr pakkanum með virkum brotpunkti:

Unity pakkastjóri

Brýn lagfæring á pakka

Unity pakkar sem bætt er við verkefni eru skrifvarandi en hægt er að breyta þeim í skyndiminni pakkans. Til að gera þetta þarftu:

  1. Farðu í pakka í skyndiminni pakka.

    Unity pakkastjóri

  2. Gerðu nauðsynlegar breytingar.
  3. Uppfærðu útgáfu í skrá package.json.
  4. Sendu pakka npm publish --registry *адрес до хранилища пакетов*.
  5. Uppfærðu pakkaútgáfuna í þá leiðréttu í gegnum UPM viðmótið.

Átök við innflutning pakka

Eftirfarandi GUID árekstrar geta komið upp við innflutning á pakka:

  1. Pakki - pakki. Ef það uppgötvast við innflutning á pakka að þegar bættir pakkar innihalda eignir með sama GUID, verður eignum með samsvarandi GUID úr innfluttum pakka ekki bætt við verkefnið.
  2. Pakki er verkefni. Ef það uppgötvast við innflutning á pakka að verkefnið inniheldur eignir með samsvarandi GUID, þá verður eignunum úr pakkanum ekki bætt við verkefnið. Hins vegar munu eignir sem eru háðar þeim byrja að nota eignir úr verkefninu.

Að flytja eignir úr verkefni í pakka

Ef þú flytur eign úr verkefni yfir í pakka á meðan Unity er opið mun virkni hennar varðveitast og tenglar í háðum eignum byrja að nota eignina úr pakkanum.

Það er mikilvægt: Þegar eign er afrituð úr verkefni yfir í pakka, mun „Package - Project“ áreksturinn sem lýst er í kaflanum hér að ofan eiga sér stað.

Mögulegar lausnir á átökum

  1. Endurúthlutun GUIDs með því að nota okkar eigin reiknirit við innflutning á öllum eignum til að koma í veg fyrir árekstra.
  2. Að bæta öllum eignum við eitt verkefni og skipta þeim síðan í pakka.
  3. Að búa til gagnagrunn sem inniheldur GUID allra eigna og framkvæma löggildingu við sendingu pakka.

Ályktun

UPM er ný lausn til að dreifa sameiginlegum auðlindum í Unity, sem getur verið verðugur valkostur við núverandi aðferðir. Ráðleggingarnar sem lýst er í greininni voru byggðar á raunverulegum tilfellum. Við vonum að þér finnist þær gagnlegar.

Heimild: www.habr.com

Bæta við athugasemd