Manadjè pake Inite

Inite se yon platfòm ki egziste depi kèk tan epi ki toujou ap evolye. Sepandan, lè w ap travay nan li ak plizyè pwojè an menm tan, ou ka toujou rankontre difikilte nan itilize sous komen (.cs), bibliyotèk (.dll) ak lòt byen (imaj, son, modèl, prefab). Nan atik sa a nou pral pale sou eksperyans nou ak yon solisyon natif natal nan yon pwoblèm konsa pou Inite.

Manadjè pake Inite

Metòd Distribisyon Resous Pataje

Gen plis pase yon fason pou itilize resous pataje pou diferan pwojè, men chak apwòch gen avantaj ak dezavantaj li yo.

1. Duplication - nou kopi resous ant pwojè "amen."

Pou:

  • Apwopriye pou tout kalite resous.
  • Pa gen pwoblèm depandans.
  • Pa gen pwoblèm ak GUID avantaj yo.

Kont:

  • Depo jeyan.
  • Pa gen okenn posiblite pou vèsyon.
  • Difikilte pou swiv chanjman nan resous pataje yo.
  • Difikilte pou mete ajou resous pataje yo.

2. Git submodules — distribisyon resous pataje atravè submodul ekstèn.

Pou:

  • Ou ka travay ak sous yo.
  • Ou ka distribye byen.
  • Pa gen pwoblèm depandans.

Kont:

  • Git eksperyans obligatwa.
  • Git pa trè zanmitay ak dosye binè - ou pral oblije konekte LFS.
  • Aksè kontwòl pou depo.
  • Difikilte pou amelyore ak desann vèsyon yo.
  • Kolizyon GUID posib epi pa gen okenn konpòtman klè sou pati Unity pou rezoud yo.

3. NuGet - distribisyon bibliyotèk pataje atravè pakè NuGet.

Pou:

  • Travay pratik ak pwojè ki pa depann de Inite.
  • Pratik vèsyon ak rezolisyon depandans.

Kont:

  • Inite pa ka travay ak pakè NuGet soti nan bwat la (sou GitHub ou ka jwenn Manadjè pake NuGet pou Unity, ki fikse sa a, men gen kèk nuans).
  • Difikilte pou distribye lòt kalite byen.

4. Manadjè pake Inite - distribisyon resous pataje atravè yon solisyon natif natal pou Inite.

Pou:

  • Entèfas natif natal pou travay ak pakè.
  • Pwoteksyon kont ranplase fichye .meta nan pakè akòz konfli GUID.
  • Posiblite pou vèsyon.
  • Kapasite pou distribye tout kalite resous pou Inite.

Kont:

  • Konfli GUID ka toujou rive.
  • Pa gen okenn dokiman pou aplikasyon an.

Dènye metòd la gen plis avantaj pase dezavantaj. Sepandan, li pa trè popilè kounye a akòz mank nan dokiman, ak Se poutèt sa nou pral rete sou li an detay.

Manadjè pake Inite

Manadjè Pakè Inite (UPM) se yon zouti jesyon pake. Li te ajoute nan Unity 2018.1 e li te itilize sèlman pou pakè ke Unity Technologies te devlope. Sepandan, kòmanse ak vèsyon 2018.3, li te vin posib pou ajoute pakè koutim.

Manadjè pake Inite
Entèfas Manadjè Pake Inite

Pakè yo pa fini nan sous pwojè yo (Anyè Byen). Yo nan yon anyè separe %projectFolder%/Library/PackageCache epi yo pa afekte pwojè a nan okenn fason, sèlman mansyone yo nan kòd sous la se nan dosye a packages/manifest.json.

Manadjè pake Inite
Pakè nan sistèm dosye pwojè a

Sous pake

UPM ka itilize plizyè sous pake:

1. File sistèm.

Pou:

  • Vitès aplikasyon an.
  • Pa mande pou zouti twazyèm pati.

Kont:

  • Difikilte nan vèsyon.
  • Aksè pataje nan sistèm dosye a obligatwa pou tout moun k ap travay ak pwojè a.

2. Git depo.

Pou:

  • Tout sa ou bezwen se yon depo Git.

Kont:

  • Ou pa ka chanje ant vèsyon atravè fenèt UPM la.
  • Pa travay ak tout depo Git.

3. npm depo.

Pou:

  • Sipòte totalman fonksyonalite UPM epi li itilize pou distribye pakè ofisyèl Inite yo.

Kont:

  • Kounye a inyore tout vèsyon fisèl pakè eksepte "-preview".

Anba a nou pral gade aplikasyon UPM + npm. Pake sa a se pratik paske li pèmèt ou travay ak nenpòt kalite resous ak jere vèsyon pake, epi tou li konplètman sipòte koòdone natif natal UPM.

Ou ka itilize li kòm yon depo npm Verdaccio. Gen yon detaye dokiman an, ak jis yon koup nan kòmandman yo oblije kouri li.

Konfigirasyon anviwònman an

Premye ou bezwen enstale node.js.

Kreye yon pake

Pou kreye yon pake, ou bezwen mete dosye a package.json, ki pral dekri li, nan anyè a ak sa ki nan pake sa a. Ou bezwen fè bagay sa yo:

Ale nan anyè pwojè a ke nou vle fè yon pake.

Kouri lòd npm init la epi antre valè yo mande yo pandan dyalòg la. Pou non, presize non an nan fòma domèn ranvèse, pou egzanp com.plarium.somepackage.
Pou fasilman montre non pake a, ajoute pwopriyete displayName nan package.json epi ranpli li.

Depi npm se js-oryante, dosye a gen pwopriyete prensipal yo ak scripts ke nou pa bezwen, ki Unity pa itilize. Li pi bon yo retire yo pou yo pa ankonbre deskripsyon pake a. Fichye a ta dwe gade yon bagay tankou sa a:

  1. Ale nan anyè pwojè a ke nou vle fè yon pake.
  2. Kouri lòd npm init la epi antre valè yo mande yo pandan dyalòg la. Pou non, presize non an nan fòma domèn ranvèse, pou egzanp com.plarium.somepackage.
  3. Pou fasilman montre non pake a, ajoute pwopriyete displayName nan package.json epi ranpli li.
  4. Depi npm se js-oryante, dosye a gen pwopriyete prensipal yo ak scripts ke nou pa bezwen, ki Unity pa itilize. Li pi bon yo retire yo pou yo pa ankonbre deskripsyon pake a. Fichye a ta dwe gade yon bagay tankou sa a:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Louvri Unity epi jenere yon fichye .meta pou package.json (Unity pa wè byen san fichye .meta, pakè pou Unity yo louvri pou lekti sèlman).

Voye yon pake

Pou voye pake a ou bezwen kouri lòd la: npm publish --registry *адрес до хранилища пакетов*.

Enstale ak mete ajou pakè atravè Manadjè pake Unity

Pou ajoute yon pake nan yon pwojè Unity, ou bezwen:

  1. Ajoute nan dosye manifest.json enfòmasyon sou sous pakè yo. Pou fè sa ou bezwen ajoute pwopriyete a scopedRegistries epi endike sijè ki abòde yo ak adrès sous la kote yo pral chèche sijè espesifik yo.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Ale nan Inite epi ouvri fenèt Manadjè Pakè a (k ap travay ak pakè koutim pa diferan de travay ak pakè ki entegre yo).
  3. Chwazi tout pakè yo.
  4. Jwenn pake ou bezwen an epi ajoute li.

Manadjè pake Inite

Travay ak sous ak debogaj

Nan lòd pou sous yo dwe konekte ak pwojè a, ou bezwen kreye Definisyon Asanble pou pake a.

Sèvi ak pakè pa limite opsyon debogaj ou yo. Sepandan, lè w ap travay ak pakè nan Unity, ou pa ka ale nan IDE a lè w klike sou yon erè nan konsole a si erè a te fèt nan pake a. Sa a se akòz lefèt ke Unity pa wè scripts kòm dosye separe, depi lè w ap itilize Definisyon Asanble a yo kolekte nan yon bibliyotèk epi yo enkli nan pwojè a. Lè w ap travay ak sous ki soti nan yon pwojè, klike sou IDE a disponib.

Script nan yon pwojè ak yon pake konekte:

Manadjè pake Inite
Script ki soti nan pake a ak yon breakpoint k ap travay:

Manadjè pake Inite

Korije ijan pou pakè yo

Pakè Inite yo ajoute nan yon pwojè yo lekti sèlman, men yo ka modifye nan kachèt pake a. Pou fè sa ou bezwen:

  1. Ale nan pake nan kachèt pake.

    Manadjè pake Inite

  2. Fè chanjman ki nesesè yo.
  3. Mizajou vèsyon an nan dosye a package.json.
  4. Voye pake npm publish --registry *адрес до хранилища пакетов*.
  5. Mete ajou vèsyon pake a nan yon sèl korije atravè koòdone UPM la.

Konfli enpòte pake

Konfli GUID sa yo ka rive lè w ap enpòte pakè yo:

  1. Pake - pake. Si, lè w ap enpòte yon pake, yo dekouvri pakè ki te deja ajoute yo genyen byen ki gen menm GUID, yo p ap ajoute nan pwojè a byen ki gen GUID ki koresponn ak pakè enpòte a.
  2. Yon pake se yon pwojè. Si, lè w ap enpòte yon pake, li dekouvri ke pwojè a gen byen ki gen GUID matche, Lè sa a, byen ki soti nan pake a pa pral ajoute nan pwojè a. Sepandan, byen ki depann de yo pral kòmanse itilize byen ki soti nan pwojè a.

Transfere byen ki soti nan yon pwojè nan yon pake

Si w transfere yon avantaj nan yon pwojè nan yon pake pandan Inite louvri, fonksyonalite li yo pral konsève, ak lyen nan byen depandan yo ap kòmanse sèvi ak avantaj ki soti nan pake a.

Li enpòtan: Lè w ap kopye yon avantaj ki soti nan yon pwojè nan yon pake, konfli "Pake - Pwojè" ki dekri nan seksyon ki anwo a pral rive.

Solisyon posib pou konfli

  1. Reasiyen GUID yo lè l sèvi avèk pwòp algoritm nou yo lè w ap enpòte tout byen yo pou elimine kolizyon yo.
  2. Ajoute tout byen nan yon pwojè epi divize yo an pakè.
  3. Kreye yon baz done ki gen GUID yo nan tout byen ak fè validation lè voye pakè.

Konklizyon

UPM se yon nouvo solisyon pou distribye resous pataje nan Inite, ki kapab yon altènatif merite pou metòd ki egziste deja. Rekòmandasyon ki dekri nan atik la te baze sou ka reyèl. Nou espere ou jwenn yo itil.

Sous: www.habr.com

Add nouvo kòmantè