Rheolwr Pecyn Undod

Mae undod yn blatfform sydd wedi bod o gwmpas ers cryn amser ac sy'n esblygu'n gyson. Fodd bynnag, wrth weithio ynddo gyda nifer o brosiectau ar yr un pryd, gallwch ddod ar draws anawsterau o hyd wrth ddefnyddio ffynonellau cyffredin (.cs), llyfrgelloedd (.dll) ac asedau eraill (delweddau, synau, modelau, tai parod). Yn yr erthygl hon byddwn yn siarad am ein profiad gyda datrysiad brodorol i broblem o'r fath ar gyfer Unity.

Rheolwr Pecyn Undod

Dulliau Rhannu Adnoddau

Mae mwy nag un ffordd o ddefnyddio adnoddau a rennir ar gyfer gwahanol brosiectau, ond mae gan bob dull ei fanteision a'i anfanteision.

1. Dyblygu - rydym yn dyblygu adnoddau rhwng prosiectau β€œΓ’ llaw.”

Manteision:

  • Yn addas ar gyfer pob math o adnoddau.
  • Dim problemau dibyniaeth.
  • Nid oes unrhyw broblemau gyda GUIDs asedau.

Cons:

  • Storfeydd anferth.
  • Nid oes unrhyw bosibilrwydd o fersiwn.
  • Anhawster olrhain newidiadau i adnoddau a rennir.
  • Anhawster diweddaru adnoddau a rennir.

2. Is-fodiwlau Git β€” dosbarthu adnoddau a rennir trwy is-fodiwlau allanol.

Manteision:

  • Gallwch weithio gyda'r ffynonellau.
  • Gallwch ddosbarthu asedau.
  • Dim problemau dibyniaeth.

Cons:

  • Profiad Git yn ofynnol.
  • Nid yw Git yn gyfeillgar iawn gyda ffeiliau deuaidd - bydd yn rhaid i chi gysylltu LFS.
  • Rheolaeth mynediad ar gyfer cadwrfeydd.
  • Anhawster gydag uwchraddio ac israddio fersiynau.
  • Mae gwrthdrawiadau GUID yn bosibl ac nid oes ymddygiad clir ar ran Unity i'w datrys.

3. NuGet - dosbarthu llyfrgelloedd a rennir trwy becynnau NuGet.

Manteision:

  • Gwaith cyfleus gyda phrosiectau nad ydynt yn dibynnu ar Undod.
  • Fersiynau cyfleus a datrysiad dibyniaeth.

Cons:

  • Ni all Unity weithio gyda phecynnau NuGet allan o'r bocs (ar GitHub gallwch ddod o hyd i NuGet Package Manager for Unity, sy'n trwsio hyn, ond mae rhai arlliwiau).
  • Anawsterau wrth ddosbarthu mathau eraill o asedau.

4. Rheolwr Pecyn Undod - dosbarthu adnoddau a rennir trwy ddatrysiad brodorol ar gyfer Unity.

Manteision:

  • Rhyngwyneb brodorol ar gyfer gweithio gyda phecynnau.
  • Amddiffyniad rhag trosysgrifo ffeiliau .meta mewn pecynnau oherwydd gwrthdaro GUID.
  • Posibilrwydd o fersiynu.
  • Y gallu i ddosbarthu pob math o adnoddau ar gyfer Undod.

Cons:

  • Gall gwrthdaro GUID ddigwydd o hyd.
  • Nid oes unrhyw ddogfennaeth ar gyfer gweithredu.

Mae gan y dull olaf fwy o fanteision nag anfanteision. Fodd bynnag, nid yw'n boblogaidd iawn nawr oherwydd y diffyg dogfennaeth, ac felly byddwn yn canolbwyntio arno'n fanwl.

Rheolwr Pecyn Undod

Offeryn rheoli pecynnau yw Unity Package Manager (UPM). Fe'i ychwanegwyd yn Unity 2018.1 a dim ond ar gyfer pecynnau a ddatblygwyd gan Unity Technologies y cafodd ei ddefnyddio. Fodd bynnag, gan ddechrau gyda fersiwn 2018.3, daeth yn bosibl ychwanegu pecynnau arferol.

Rheolwr Pecyn Undod
Rhyngwyneb Rheolwr Pecyn Undod

Nid yw'r pecynnau yn y pen draw yn ffynonellau'r prosiect (cyfeiriadur Asedau). Maent mewn cyfeiriadur ar wahΓ’n %projectFolder%/Library/PackageCache ac nad ydynt yn effeithio ar y prosiect mewn unrhyw ffordd, mae eu hunig sΓ΄n yn y cod ffynhonnell yn y ffeil packages/manifest.json.

Rheolwr Pecyn Undod
Pecynnau yn system ffeiliau'r prosiect

Ffynonellau pecyn

Gall UPM ddefnyddio sawl ffynhonnell pecyn:

1. System ffeil.

Manteision:

  • Cyflymder gweithredu.
  • Nid oes angen offer trydydd parti.

Cons:

  • Anhawster wrth fersiynu.
  • Mae angen mynediad a rennir i'r system ffeiliau ar gyfer pawb sy'n gweithio gyda'r prosiect.

2. Ystorfa git.

Manteision:

  • Y cyfan sydd ei angen arnoch yw ystorfa Git.

Cons:

  • Ni allwch newid rhwng fersiynau trwy'r ffenestr UPM.
  • Nid yw'n gweithio gyda holl gadwrfeydd Git.

3. ystorfa npm.

Manteision:

  • Yn cefnogi ymarferoldeb UPM yn llawn ac yn cael ei ddefnyddio i ddosbarthu pecynnau Unity swyddogol.

Cons:

  • Ar hyn o bryd yn anwybyddu pob fersiwn llinynnol o becynnau ac eithrio "-preview".

Isod byddwn yn edrych ar weithrediad UPM + npm. Mae'r bwndel hwn yn gyfleus oherwydd ei fod yn caniatΓ‘u ichi weithio gydag unrhyw fath o adnoddau a rheoli fersiynau pecyn, ac mae hefyd yn cefnogi'r rhyngwyneb UPM brodorol yn llawn.

Gallwch ei ddefnyddio fel ystorfa npm Verdaccio. Mae manwl dogfennaeth, a dim ond cwpl o orchmynion sydd eu hangen i'w redeg.

Sefydlu'r amgylchedd

Yn gyntaf mae angen i chi osod node.js.

Creu pecyn

I greu pecyn, mae angen i chi osod y ffeil package.json, a fydd yn ei ddisgrifio, i'r cyfeiriadur gyda chynnwys y pecyn hwn. Mae angen i chi wneud y canlynol:

Ewch i'r cyfeiriadur prosiect yr ydym am wneud pecyn.

Rhedeg y gorchymyn init npm a nodi'r gwerthoedd gofynnol yn ystod yr ymgom. Ar gyfer enw, nodwch yr enw mewn fformat parth gwrthdro, er enghraifft com.plarium.somepackage.
I arddangos enw'r pecyn yn gyfleus, ychwanegwch yr eiddo displayName at package.json a'i lenwi.

Gan fod npm yn canolbwyntio ar js, mae'r ffeil yn cynnwys y prif briodweddau a'r nodweddion sgriptiau nad oes eu hangen arnom, nad yw Unity yn eu defnyddio. Mae'n well cael gwared arnynt er mwyn peidio ag annibendod disgrifiad y pecyn. Dylai'r ffeil edrych rhywbeth fel hyn:

  1. Ewch i'r cyfeiriadur prosiect yr ydym am wneud pecyn.
  2. Rhedeg y gorchymyn init npm a nodi'r gwerthoedd gofynnol yn ystod yr ymgom. Ar gyfer enw, nodwch yr enw mewn fformat parth gwrthdro, er enghraifft com.plarium.somepackage.
  3. I arddangos enw'r pecyn yn gyfleus, ychwanegwch yr eiddo displayName at package.json a'i lenwi.
  4. Gan fod npm yn canolbwyntio ar js, mae'r ffeil yn cynnwys y prif briodweddau a'r nodweddion sgriptiau nad oes eu hangen arnom, nad yw Unity yn eu defnyddio. Mae'n well cael gwared arnynt er mwyn peidio ag annibendod disgrifiad y pecyn. Dylai'r ffeil edrych rhywbeth fel hyn:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Agor Unity a chynhyrchu ffeil .meta ar gyfer package.json (nid yw Unity yn gweld asedau heb ffeiliau .meta, mae pecynnau ar gyfer Unity yn cael eu hagor yn ddarllenadwy yn unig).

Anfon pecyn

I anfon y pecyn mae angen i chi redeg y gorchymyn: npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.

Gosod a diweddaru pecynnau trwy Unity Package Manager

I ychwanegu pecyn at brosiect Unity, mae angen:

  1. Ychwanegu at ffeil manifest.json gwybodaeth am ffynhonnell y pecynnau. I wneud hyn mae angen ichi ychwanegu'r eiddo scopedRegistries a nodi'r cwmpasau a'r cyfeiriad ffynhonnell lle bydd cwmpasau penodol yn cael eu chwilio.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Ewch i Unity ac agorwch ffenestr y Rheolwr Pecyn (nid yw gweithio gyda phecynnau arfer yn wahanol i weithio gyda rhai adeiledig).
  3. Dewiswch Pob Pecyn.
  4. Dewch o hyd i'r pecyn sydd ei angen arnoch a'i ychwanegu.

Rheolwr Pecyn Undod

Gweithio gyda ffynonellau a dadfygio

Er mwyn i'r ffynonellau gael eu cysylltu Γ’'r prosiect, mae angen i chi greu Diffiniad Cynulliad ar gyfer y pecyn.

Nid yw defnyddio pecynnau yn cyfyngu ar eich opsiynau dadfygio. Fodd bynnag, wrth weithio gyda phecynnau yn Unity, ni allwch fynd i'r IDE trwy glicio ar wall yn y consol os digwyddodd y gwall yn y pecyn. Mae hyn oherwydd y ffaith nad yw Unity yn gweld sgriptiau fel ffeiliau ar wahΓ’n, oherwydd wrth ddefnyddio'r Diffiniad Cynulliad maent yn cael eu casglu i lyfrgell a'u cynnwys yn y prosiect. Wrth weithio gyda ffynonellau o brosiect, mae clicio ar y DRhA ar gael.

Sgript mewn prosiect gyda phecyn cysylltiedig:

Rheolwr Pecyn Undod
Sgript o'r pecyn gyda thorbwynt gweithio:

Rheolwr Pecyn Undod

Atebion brys i becynnau

Mae pecynnau undod a ychwanegir at brosiect yn ddarllenadwy yn unig, ond gellir eu golygu yn y storfa pecyn. I wneud hyn mae angen:

  1. Ewch i'r pecyn mewn storfa pecyn.

    Rheolwr Pecyn Undod

  2. Gwnewch y newidiadau angenrheidiol.
  3. Diweddaru'r fersiwn yn y ffeil package.json.
  4. Anfon pecyn npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.
  5. Diweddarwch y fersiwn pecyn i'r un wedi'i gywiro trwy'r rhyngwyneb UPM.

Gwrthdaro mewnforio pecyn

Gall y gwrthdaro GUID canlynol ddigwydd wrth fewnforio pecynnau:

  1. Pecyn - pecyn. Os, wrth fewnforio pecyn, y darganfyddir bod pecynnau sydd eisoes wedi'u hychwanegu yn cynnwys asedau gyda'r un GUID, ni fydd asedau gyda GUIDs cyfatebol o'r pecyn a fewnforiwyd yn cael eu hychwanegu at y prosiect.
  2. Mae pecyn yn brosiect. Os, wrth fewnforio pecyn, y darganfyddir bod y prosiect yn cynnwys asedau gyda GUIDs cyfatebol, yna ni fydd yr asedau o'r pecyn yn cael eu hychwanegu at y prosiect. Fodd bynnag, bydd asedau sy'n dibynnu arnynt yn dechrau defnyddio asedau o'r prosiect.

Trosglwyddo asedau o brosiect i becyn

Os byddwch yn trosglwyddo ased o brosiect i becyn tra bod Unity ar agor, bydd ei ymarferoldeb yn cael ei gadw, a bydd dolenni mewn asedau dibynnol yn dechrau defnyddio'r ased o'r pecyn.

Mae'n bwysig: Wrth gopΓ―o ased o brosiect i becyn, bydd y gwrthdaro β€œPecyn - Prosiect” a ddisgrifir yn yr adran uchod yn digwydd.

Atebion posibl i wrthdaro

  1. Ailbennu GUIDs gan ddefnyddio ein algorithmau ein hunain wrth fewnforio'r holl asedau i ddileu gwrthdrawiadau.
  2. Ychwanegu'r holl asedau at un prosiect ac yna eu rhannu'n becynnau.
  3. Creu cronfa ddata sy'n cynnwys GUIDs yr holl asedau a chynnal dilysiad wrth anfon pecynnau.

Casgliad

Mae UPM yn ddatrysiad newydd ar gyfer dosbarthu adnoddau a rennir yn Unity, a all fod yn ddewis arall teilwng i ddulliau presennol. Roedd yr argymhellion a ddisgrifir yn yr erthygl yn seiliedig ar achosion go iawn. Gobeithio y byddwch yn eu cael yn ddefnyddiol.

Ffynhonnell: hab.com

Ychwanegu sylw