Unity paketeen kudeatzailea

Unity aspalditik dagoen eta etengabe garatzen ari den plataforma bat da. Hala ere, hainbat proiekturekin aldi berean lan egiten duzunean, oraindik ere zailtasunak izan ditzakezu iturri arruntak (.cs), liburutegiak (.dll) eta beste aktibo batzuk (irudiak, soinuak, ereduak, aurrefabrikatuak) erabiltzeko. Artikulu honetan, Unity-k horrelako arazo bati konponbide natiboarekin izan dugun esperientziaz hitz egingo dugu.

Unity paketeen kudeatzailea

Partekatutako baliabideak banatzeko metodoak

Proiektu ezberdinetarako baliabide partekatuak erabiltzeko modu bat baino gehiago dago, baina ikuspegi bakoitzak bere alde onak eta txarrak ditu.

1. Bikoizketa - β€œeskuz” baliabideak bikoizten ditugu proiektuen artean.

Pros:

  • Baliabide mota guztietarako egokia.
  • Ez dago menpekotasun arazorik.
  • Ez dago arazorik erreproduzigaien GUIDekin.

Cons:

  • Biltegi erraldoiak.
  • Ez dago bertsioa egiteko aukerarik.
  • Zailtasuna partekatutako baliabideen aldaketak jarraitzeko.
  • Partekatutako baliabideak eguneratzeko zailtasunak.

2. Git azpimoduluak - partekatutako baliabideak kanpoko azpimoduluen bidez banatzea.

Pros:

  • Iturburuekin lan egin dezakezu.
  • Aktiboak banatu ditzakezu.
  • Ez dago menpekotasun arazorik.

Cons:

  • Git gaitasunak behar dira.
  • Git ez da oso atsegina fitxategi bitarrekin - LFS sartu behar duzu.
  • Biltegietarako sarbide-kontrola.
  • Berritzeko eta beheratzeko zailtasunak.
  • GUID talkak posible dira eta ez dago anbiguotasunik gabeko jokabiderik Unity-ren aldetik horiek konpontzeko.

3. NuGet - partekatutako liburutegien banaketa NuGet paketeen bidez.

Pros:

  • Lan erosoa Unityren menpe ez dauden proiektuekin.
  • Bertsio erosoa eta menpekotasunen ebazpena.

Cons:

  • Unity-k ez daki NuGet paketeekin nola lan egin behar den kutxatik (NuGet Package Manager for Unity-n aurki dezakezu GitHub-en, hau konpontzen duena, baina Γ±abardurak daude).
  • Beste motatako ondasunak banatzeko zailtasunak.

4. Unity Package Manager - partekatutako baliabideen banaketa Unity-ren jatorrizko soluzio baten bidez.

Pros:

  • Paketeekin lan egiteko jatorrizko interfazea.
  • GUID gatazkaren kasuan paketeetan .meta fitxategiak gainidaztearen aurkako babesa.
  • Bertsio-gaitasuna.
  • Unity-rako era guztietako baliabideak banatzeko gaitasuna.

Cons:

  • GUID gatazkak gerta daitezke oraindik.
  • Ez dago ezartzeko dokumentaziorik.

Azken metodo honek abantaila gehiago ditu desabantailak baino. Hala ere, orain ez da oso ezaguna dokumentazio faltagatik, eta, beraz, zehatz-mehatz luzatuko gara.

Unity paketeen kudeatzailea

Unity Package Manager (aurrerantzean UPM) paketeak kudeatzeko tresna bat da. Unity 2018.1-en gehitu zen eta Unity Technologies-ek garatutako paketeetarako bakarrik erabili zen. Hala ere, 2018.3 bertsiotik hasita, pakete pertsonalizatuak gehitzea posible izan zen.

Unity paketeen kudeatzailea
Unity Package Manager Interfazea

Paketeak ez dira proiektuaren iturrietan amaitzen (Assets direktorioa). Aparteko direktorio batean daude. %projectFolder%/Library/PackageCache eta ez diote inola ere proiektuari eragin, iturburu kodean aipamen bakarra fitxategian dago packages/manifest.json.

Unity paketeen kudeatzailea
Paketeak proiektuaren fitxategi-sisteman

Pakete iturriak

UPM-k hainbat pakete iturri erabil ditzake:

1. Fitxategi-sistema.

Pros:

  • Ezartzeko abiadura.
  • Ez du hirugarrenen tresnarik behar.

Cons:

  • bertsioen konplexutasuna.
  • Fitxategi-sistemarako sarbidea partekatua beharrezkoa da proiektuan lan egiten duten guztientzat.

2. Git biltegia.

Pros:

  • Behar duzun guztia Git biltegi bat da.

Cons:

  • Ezin duzu bertsio batetik bestera aldatu UPM leihotik.
  • Ez dabil Git biltegi guztiekin.

3. npm biltegia.

Pros:

  • UPM funtzionaltasuna guztiz onartzen du eta Unity pakete ofizialak banatzeko erabiltzen da.

Cons:

  • Une honetan paketeen kate-bertsio guztiak baztertzen ditu "-preview" izan ezik.

Jarraian UPM + npm inplementazioa ikusiko dugu. Sorta hau erosoa da, edozein baliabiderekin lan egiteko eta paketeen bertsioak kudeatzeko aukera ematen duelako, eta UPM jatorrizko interfazea guztiz onartzen duelako.

Npm biltegi gisa, erabil dezakezu Verdaccio. Xehetasun bat dauka dokumentazioa, eta literalki komando pare bat behar dira exekutatzeko.

Ingurunearen konfigurazioa

Lehenik eta behin instalatu behar duzu Node.js.

Sortu pakete bat

Pakete bat sortzeko, fitxategia jarri behar duzu package.json, deskribatuko duena, pakete honen edukia duen direktoriora. Honako hau egin behar duzu:

Joan pakete bat egin nahi dugun proiektuaren direktoriora.

Exekutatu npm init komandoa eta idatzi behar diren balioak elkarrizketa-koadroan. Izenaren kasuan, zehaztu izena alderantzizko domeinu formatuan, adibidez, com.plarium.somepackage.
Paketearen izena eroso bistaratzeko, gehitu displayName propietatea package.json-era eta bete ezazu.

Npm js-ra bideratua dagoenez, fitxategiak behar ez ditugun propietate nagusiak eta scripts ditu, Unity-k erabiltzen ez dituenak. Hobe da kentzea paketearen deskribapena ez oztopatzeko. Fitxategiak honelako itxura izan beharko luke:

  1. Joan pakete bat egin nahi dugun proiektuaren direktoriora.
  2. Exekutatu npm init komandoa eta idatzi behar diren balioak elkarrizketa-koadroan. Izenaren kasuan, zehaztu izena alderantzizko domeinu formatuan, adibidez, com.plarium.somepackage.
  3. Paketearen izena eroso bistaratzeko, gehitu displayName propietatea package.json-era eta bete ezazu.
  4. Npm js-ra bideratua dagoenez, fitxategiak behar ez ditugun propietate nagusiak eta scripts ditu, Unity-k erabiltzen ez dituenak. Hobe da kentzea paketearen deskribapena ez oztopatzeko. Fitxategiak honelako itxura izan beharko luke:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Ireki Unity eta sortu .meta fitxategi bat package.json-erako (Unity-k ez ditu ikusten .meta fitxategirik gabeko aktiboak, Unity paketeak irakurtzeko soilik irekitzen dira).

Pakete bat bidaltzea

Pakete bat bidaltzeko, komandoa exekutatu behar duzu: npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.

Paketeak instalatzea eta eguneratzea Unity Package Manager-en bidez

Unity proiektu batean pakete bat gehitzeko, hau egin behar duzu:

  1. Idatzi fitxategira manifest.json paketeen iturriari buruzko informazioa. Horretarako, propietate bat gehitu behar duzu scopedRegistries eta adierazi zein esparru eta iturriaren helbidea bilatuko diren esparru zehatzak.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Joan Unity-ra eta ireki paketeen kudeatzailea leihoa (pakete pertsonalizatuekin lan egitea ez da desberdina integratutakoekin lan egitearekin).
  3. Hautatu pakete guztiak.
  4. Bilatu beharrezko paketea eta gehitu.

Unity paketeen kudeatzailea

Iturburuekin eta arazketarekin lan egitea

Iturburuak proiektura konektatzeko, sortu behar duzu Muntaia definizioa paketerako.

Paketeak erabiltzeak ez du arazketarako esparrua mugatzen. Hala ere, Unity-n paketeekin lan egiten duzunean, ezin duzu IDEra joan kontsolaren errore batean klik eginez paketean errorea gertatu bada. Hau da, Unity-k ez dituelako scriptak fitxategi bereizi gisa ikusten, Asanbladaren Definizioa erabiltzean liburutegi batean bildu eta proiektuan sartzen direlako. Proiektu bateko iturriekin lan egiten duzunean, IDErako klik bidezko trantsizioa eskuragarri dago.

Konektatutako pakete bat duen proiektu batean gidoia:

Unity paketeen kudeatzailea
Paketearen script-a eten puntu funtzionatzen duena:

Unity paketeen kudeatzailea

Paketeen premiazko konponketak

Proiektuan gehitutako Unity paketeak irakurtzeko soilik dira, baina paketeen cachean edita daitezke. Horretarako behar duzu:

  1. Joan paketeen cachean dagoen paketera.

    Unity paketeen kudeatzailea

  2. Egin beharrezko aldaketak.
  3. Eguneratu bertsioa fitxategian package.json.
  4. bidali paketea npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.
  5. Eguneratu paketearen bertsioa zuzendutako bertsiora UPM interfazearen bidez.

Paketeak inportatzeko gatazkak

Paketeak inportatzean, GUID gatazka hauek gerta daitezke:

  1. Paketea pakete bat da. Pakete bat inportatzean, dagoeneko gehitutako paketeek GUID bera duten aktiboak dituztela ikusten bada, inportatutako paketetik bat datozen GUIDak ez dira proiektuan gehituko.
  2. Paketea proiektu bat da. Pakete bat inportatzean, proiektuak bat datozen GUIDekin aktiboak dituela ikusten bada, paketeko aktiboak ez dira proiektuan gehituko. Hala ere, horien menpe dauden aktiboak proiektuko aktiboak erabiltzen hasiko dira.

Aktiboak proiektu batetik pakete batera transferitzea

Unity irekita dagoen bitartean aktibo bat proiektu batetik pakete batera transferitzen baduzu, haren funtzionaltasuna gordeko da, eta menpeko aktiboen estekak paketeko aktiboa erabiltzen hasiko dira.

Garrantzitsua da: Aktibo bat proiektu batetik pakete batera kopiatzean, goiko atalean deskribatutako pakete-proiektu gatazka sortuko da.

Gatazkei irtenbide posibleak

  1. Aktibo guztiak inportatzerakoan GUIDak algoritmo propioen arabera biresleitzea, talkak saihesteko.
  2. Aktibo guztiak proiektu batera gehitzea paketeetan banatuta.
  3. Sortu aktibo guztien GUIDak dituen datu-base bat eta baliozkotu paketeak bidaltzean.

Ondorioa

UPM Unity-n partekatutako baliabideak banatzeko soluzio berria da, dauden metodoen alternatiba egokia izan daitekeena. Artikuluan deskribatutako gomendioak kasu errealetan oinarrituta sortu ziren. Espero dugu erabilgarriak izatea.

Iturria: www.habr.com

Gehitu iruzkin berria