Unity Package Manager

Kubatana ipuratifomu yave iripo kwenguva yakati rebei uye inogara ichishanduka. Zvisinei, kana uchishanda mairi nemapurojekiti akati wandei panguva imwe chete, unogona kusangana nematambudziko pakushandisa zvakajairika (.cs), maraibhurari (.dll) uye zvimwe zvinhu (mifananidzo, manzwi, mhando, prefabs). Muchikamu chino tichataura nezve chiitiko chedu nemhinduro yekuzvarwa kune dambudziko rakadaro reKubatana.

Unity Package Manager

Yakagovaniswa Resource Distribution Nzira

Kune inopfuura nzira imwe yekushandisa zviwanikwa zvakagovaniswa kumapurojekiti akasiyana, asi nzira yega yega ine zvayakanakira nezvayakaipira.

1. Kudzokorora - tinodzokorora zviwanikwa pakati pezvirongwa "nemaoko."

Pros:

  • Inokodzera marudzi ese ezviwanikwa.
  • Hapana matambudziko ekutsamira.
  • Iko hakuna matambudziko neasset GUIDs.

Cons:

  • Giant repositories.
  • Iko hakuna mukana wekushandura.
  • Dambudziko rekutevera shanduko kune zvakagovaniswa zviwanikwa.
  • Zvakaoma kugadzirisa zvakagovaniswa zviwanikwa.

2. Git submodules - kugoverwa kwezviwanikwa zvakagovaniswa kuburikidza nekunze submodules.

Pros:

  • Unogona kushanda nemasources.
  • Unogona kugovera zvinhu.
  • Hapana matambudziko ekutsamira.

Cons:

  • Git ruzivo runodiwa.
  • Git haina hushamwari zvakanyanya nemabhinari mafaera - uchafanirwa kubatanidza LFS.
  • Kupinda kutonga kwema repositori.
  • Kunetsa nekusimudzira uye kudzikisira shanduro.
  • GUID kudhumhana kunogoneka uye hapana hunhu hwakajeka paKubatana kuti vagadzirise.

3. NuGet - kugoverwa kwemaraibhurari akagovaniswa kuburikidza neNuGet mapakeji.

Pros:

  • Basa rakasununguka nemapurojekiti asingaenderane neKubatana.
  • Yakanaka shanduro uye kutsamira kugadzirisa.

Cons:

  • Kubatana hakugone kushanda neNuGet mapakeji kunze kwebhokisi (paGitHub unogona kuwana NuGet Package Maneja weKubatana, inogadzirisa izvi, asi pane mamwe nuances).
  • Matambudziko pakugovera mamwe marudzi emidziyo.

4. Unity Package Manager - kugovera zviwanikwa zvakagovaniswa kuburikidza nemhinduro yekuzvarwa yeKubatana.

Pros:

  • Native interface yekushanda nemapakeji.
  • Dziviriro kubva pakunyora .meta mafaera mumapakeji nekuda kwekupokana kweGUID.
  • Kugona kweshanduro.
  • Kugona kugovera marudzi ese ezviwanikwa zveUnity.

Cons:

  • GUID makakatanwa achiri kugona kuitika.
  • Hapana magwaro ekushandiswa.

Iyo yekupedzisira nzira ine zvakawanda zvakanakira pane zvisingabatsiri. Nekudaro, haina kufarirwa zvakanyanya iye zvino nekuda kwekushaikwa kwezvinyorwa, uye saka isu tichagara pairi zvakadzama.

Unity Package Manager

Unity Package Maneja (UPM) chishandiso chekugadzirisa pasuru. Yakawedzerwa muUnity 2018.1 uye yaingoshandiswa pamapakeji akagadzirwa neUnity Technologies. Nekudaro, kutanga neiyo vhezheni 2018.3, zvakave zvichikwanisika kuwedzera tsika mapakeji.

Unity Package Manager
Unity Package Maneja Interface

Iwo mapakeji haapere mumapurojekiti masosi (Assets dhairekitori). Vari mune rimwe dhairekitori rakasiyana %projectFolder%/Library/PackageCache uye usakanganise purojekiti nenzira ipi neipi, kutaura kwavo chete mune kodhi kodhi iri mufaira packages/manifest.json.

Unity Package Manager
Mapakeji ari muprojekiti faira system

Package sources

UPM inogona kushandisa akati wandei mapakeji masosi:

1. Faira system.

Pros:

  • Kumhanya kwekuita.
  • Hazvidi zvechitatu bato maturusi.

Cons:

  • Kuoma mukushandura.
  • Kugovaniswa kuwana kune iyo faira system kunodiwa kune wese anoshanda neprojekiti.

2. Git repository.

Pros:

  • Zvese zvaunoda iGit repository.

Cons:

  • Iwe haugone kushandura pakati peshanduro kuburikidza neUPM hwindo.
  • Haishande neese Git repositories.

3. npm repository.

Pros:

  • Inotsigira zvizere UPM mashandiro uye inoshandiswa kugovera zviri pamutemo Unity mapakeji.

Cons:

  • Parizvino inofuratira ese tambo shanduro dzepakeji kunze kwe "-preview".

Pazasi isu tichatarisa iyo UPM + npm kuita. Iyi bundle yakanakira nekuti inokutendera kuti ushande nechero mhando yezvishandiso uye kugadzirisa pasuru shanduro, uye zvakare inotsigira zvizere iyo yemuno UPM interface.

Unogona kuishandisa se npm repository Verdaccio. Pane zvakadzama zvinyorwa, uye mishoma yemirairo inodiwa kuti uite.

Kugadzira zvakatipoteredza

Kutanga iwe unoda kuisa node.js.

Kugadzira pasuru

Kuti ugadzire purogiramu, unoda kuisa faira package.json, iyo inotsanangura iyo, kune dhairekitori ine zviri mukati meiyi package. Iwe unofanirwa kuita zvinotevera:

Enda kune dhairekitori reprojekiti yatinoda kugadzira package.

Mhanya iyo npm init command uye isa izvo zvinodiwa panguva yenhaurirano. Pazita, tsanangura zita iri reverse domain format, semuenzaniso com.plarium.somepackage.
Kuti uratidze zita repasuru zviri nyore, wedzera iyo displayName pfuma ku package.json uye uzadze iyo.

Sezvo npm iri js-yakatarisana, iyo faira ine huru uye zvinyorwa zvinyorwa zvatisingade, izvo Unity isingashandisi. Zviri nani kuvabvisa kuitira kuti urege kusanganisa tsanangudzo yepakiti. Iyo faira inofanira kutaridzika seizvi:

  1. Enda kune dhairekitori reprojekiti yatinoda kugadzira package.
  2. Mhanya iyo npm init command uye isa izvo zvinodiwa panguva yenhaurirano. Pazita, tsanangura zita iri reverse domain format, semuenzaniso com.plarium.somepackage.
  3. Kuti uratidze zita repasuru zviri nyore, wedzera iyo displayName pfuma ku package.json uye uzadze iyo.
  4. Sezvo npm iri js-yakatarisana, iyo faira ine huru uye zvinyorwa zvinyorwa zvatisingade, izvo Unity isingashandisi. Zviri nani kuvabvisa kuitira kuti urege kusanganisa tsanangudzo yepakiti. Iyo faira inofanira kutaridzika seizvi:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Vhura Kubatana uye gadzira .meta faira ye package.json (Kubatana hakuone midziyo isina .meta mafaera, mapakeji eUnity anovhurwa kuverenga-chete).

Kutumira pasuru

Kuti utumire package iwe unofanirwa kumhanyisa murairo: npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.

Kuisa nekugadzirisa mapakeji kuburikidza neUnity Package Manager

Kuti uwedzere pasuru kune chirongwa cheUnity, unoda:

  1. Wedzera kufaira manifest.json ruzivo nezve kwakabva mapakeji. Kuti uite izvi unoda kuwedzera pfuma scopedRegistries uye ratidza masikopu nekero yekwakabva panotsvakwa zvikero.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Enda kuKubatana uye vhura iyo Package Manager hwindo (kushanda nemapakeji etsika hakuna kusiyana nekushanda neakavakirwa-mukati).
  3. Sarudza All Packages.
  4. Tsvaga pasuru yaunoda woiwedzera.

Unity Package Manager

Kushanda nemasources uye debugging

Kuti zvitubu zvibatanidzwe kune purojekiti, unofanirwa kugadzira Gungano Tsanangudzo zvepasuru.

Kushandisa mapakeji hakuganhuriri sarudzo dzako dzekugadzirisa. Nekudaro, kana uchishanda nemapakeji muKubatana, haugone kuenda kuIDE nekudzvanya pane kukanganisa mukoni kana kukanganisa kwakaitika mupakeji. Izvi zvinokonzerwa nekuti Kubatana hakuone zvinyorwa semafaira akaparadzana, sezvo kana uchishandisa Gungano Tsanangudzo inounganidzwa muraibhurari uye inosanganisirwa muchirongwa. Paunenge uchishanda nezvinyorwa kubva kupurojekiti, kudzvanya kuIDE kunowanikwa.

Script mupurojekiti ine pasuru yakabatana:

Unity Package Manager
Script kubva pasuru ine yekushanda breakpoint:

Unity Package Manager

Kugadziriswa kwechimbichimbi kumapakeji

Unity mapakeji akawedzerwa kupurojekiti anoverengwa-chete, asi anogona kugadziridzwa mupakeji cache. Kuti aite izvi unofanira:

  1. Enda kune package mupakeji cache.

    Unity Package Manager

  2. Ita shanduko dzinodiwa.
  3. Gadziridza shanduro mufaira package.json.
  4. Send package npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.
  5. Gadziridza iyo pasuru vhezheni kune yakagadziriswa kuburikidza neUPM interface.

Pakeji zvekupokana kubva kunze kwenyika

Kukakavadzana kunotevera kweGUID kunogona kuitika kana uchiunza mapakeji:

  1. Package - package. Kana, pakuunza pasuru, zvikaonekwa kuti mapakeji atowedzerwa ane midziyo ine GUID yakafanana, midziyo ine maGUID anoenderana kubva kune inotengeswa kunze kwenyika haizowedzerwe kupurojekiti.
  2. Pasuru ipurojekiti. Kana, pakuunza pasuru, zvikaonekwa kuti purojekiti ine zvinhu zvine maGUID anoenderana, saka midziyo kubva pasuru haizowedzerwe kupurojekiti. Nekudaro, midziyo inotsamira pavari ichatanga kushandisa midziyo kubva kupurojekiti.

Kutamisa zvinhu kubva kupurojekiti kuenda pasuru

Kana iwe ukaendesa asset kubva kupurojekiti kuenda pasuru apo Kubatana kwakavhurika, kushanda kwayo kuchachengetedzwa, uye zvinongedzo muzvinhu zvinotsamira zvinotanga kushandisa asset kubva pasuru.

kosha: Kana uchikopa asset kubva kupurojekiti kuenda pasuru, iyo "Package - Project" kunetsana kwakatsanangurwa muchikamu chiri pamusoro ichaitika.

Zvinokwanisika kugadzirisa kunetsana

  1. Kugoverazve maGUID tichishandisa edu algorithms kana tichipinza zvinhu zvese kuti zvibvise kudhumhana.
  2. Kuwedzera zvinhu zvese kune imwe purojekiti uye wozozvipatsanura kuita mapakeji.
  3. Kugadzira dhatabhesi rine maGUID ezvese zvinhu uye kuita kusimbiswa kana uchitumira mapakeji.

mhedziso

UPM ndiyo mhinduro nyowani yekugovera zviwanikwa zvakagovaniswa muKubatana, iyo inogona kuve yakakodzera imwe nzira kune iripo nzira. Mazano anotsanangurwa munyaya yacho aibva pazviitiko chaizvo. Tinovimba unozviwana zvichibatsira.

Source: www.habr.com

Voeg