Unity Package Manager

Kev sib koom ua ke yog lub platform uas tau nyob ib puag ncig ntev thiab hloov mus tas li. Txawm li cas los xij, thaum ua haujlwm nrog ntau qhov haujlwm tib lub sijhawm, koj tseem tuaj yeem ntsib teeb meem hauv kev siv ntau qhov chaw (.cs), qiv (.dll) thiab lwm yam khoom muaj nqis (duab, suab, qauv, prefab). Hauv tsab xov xwm no, peb yuav tham txog peb cov kev paub dhau los nrog kev daws teeb meem ib txwm muaj rau cov teeb meem zoo li no rau Unity.

Unity Package Manager

Txoj kev faib cov peev txheej faib

Muaj ntau tshaj li ib txoj hauv kev los siv cov peev txheej sib txawv rau cov haujlwm sib txawv, tab sis txhua txoj hauv kev muaj nws qhov zoo thiab qhov tsis zoo.

1. Duplication - "los ntawm tes" peb duplicate cov peev txheej ntawm cov haujlwm.

Tshaj:

  • Haum rau txhua yam kev pab.
  • Tsis muaj teeb meem kev vam khom.
  • Tsis muaj teeb meem nrog cov cuab yeej cuab tam GUIDs.

Txais:

  • Giant repositories.
  • Tsis muaj kev xaiv rau versioning.
  • Yooj yim taug qab kev hloov pauv rau cov peev txheej sib koom.
  • Yooj yim hloov kho cov peev txheej sib koom.

2. Git submodules - faib cov peev txheej sib koom los ntawm lwm cov submodules.

Tshaj:

  • Koj tuaj yeem ua haujlwm nrog cov peev txheej.
  • Koj tuaj yeem faib cov khoom muaj nqis.
  • Tsis muaj teeb meem kev vam khom.

Txais:

  • Git txawj xav.
  • Git tsis zoo heev nrog cov ntaub ntawv binary - koj yuav tsum suav nrog LFS.
  • Kev tswj kev nkag mus rau cov chaw khaws cia.
  • Nyuaj upgraded thiab downgrading.
  • Kev sib tsoo GUID tuaj yeem ua tau thiab tsis muaj tus cwj pwm tsis meej pem ntawm kev sib sau los daws lawv.

3. NuGet - faib cov tsev qiv ntawv sib koom los ntawm cov pob khoom NuGet.

Tshaj:

  • Kev ua haujlwm yooj yim nrog cov haujlwm uas tsis nyob ntawm Unity.
  • Yooj yim versioning thiab dependency daws teeb meem.

Txais:

  • Unity tsis paub yuav ua li cas nrog NuGet tej pob khoom tawm ntawm lub thawv (koj tuaj yeem nrhiav NuGet Package Manager rau Unity ntawm GitHub, uas kho qhov no, tab sis muaj nuances).
  • Nyuaj rau kev faib lwm yam khoom muaj nqis.

4. Unity Package Manager - faib cov peev txheej los ntawm kev daws teeb meem ib txwm muaj rau Unity.

Tshaj:

  • Native interface rau kev ua haujlwm nrog pob.
  • Kev tiv thaiv tiv thaiv overwriting .meta cov ntaub ntawv hauv pob ntawv thaum muaj GUID tsis sib haum.
  • Versioning muaj peev xwm.
  • Muaj peev xwm faib tau txhua yam kev pab rau Unity.

Txais:

  • GUID kev tsis sib haum xeeb tseem tuaj yeem tshwm sim.
  • Tsis muaj ntaub ntawv rau kev siv.

Txoj kev tom kawg muaj qhov zoo dua li qhov tsis zoo. Txawm li cas los xij, tam sim no nws tsis nrov heev vim tsis muaj ntaub ntawv, thiab yog li peb yuav nyob ntawm nws kom meej.

Unity Package Manager

Unity Package Manager (tom qab no hu ua UPM) yog cov cuab yeej tswj pob. Nws tau ntxiv rau hauv Unity 2018.1 thiab tsuas yog siv rau pob khoom tsim los ntawm Unity Technologies. Txawm li cas los xij, pib nrog version 2018.3, nws dhau los ua tau ntxiv cov pob kev cai.

Unity Package Manager
Unity Package Manager Interface

Cov pob khoom tsis xaus rau hauv qhov project qhov chaw (Assets directory). Lawv nyob hauv ib phau ntawv cais. %projectFolder%/Library/PackageCache thiab tsis cuam tshuam rau qhov project nyob rau hauv ib txoj kev, lawv tsuas yog hais nyob rau hauv qhov chaws code yog nyob rau hauv cov ntaub ntawv packages/manifest.json.

Unity Package Manager
Pob ntawv hauv qhov project file system

Pob qhov chaw

UPM tuaj yeem siv ntau qhov chaw pob:

1. Cov ntaub ntawv kaw lus.

Tshaj:

  • Kev ua kom nrawm.
  • Yuav tsum tsis muaj cov cuab yeej thib peb.

Txais:

  • versioning complexity.
  • Kev sib koom nkag mus rau cov ntaub ntawv kaw lus yog xav tau rau txhua tus neeg ua haujlwm nrog qhov project.

2. Git repository.

Tshaj:

  • Txhua yam koj xav tau yog Git repository.

Txais:

  • Koj tsis tuaj yeem hloov ntawm cov qauv los ntawm UPM qhov rais.
  • Tsis ua haujlwm nrog txhua qhov chaw khaws cia Git.

3. npm repository.

Tshaj:

  • Txhawb nqa UPM kev ua haujlwm siab thiab siv los faib cov pob khoom sib koom ua haujlwm.

Txais:

  • Tam sim no ignores tag nrho cov hlua versions ntawm pob tsuas yog "-preview".

Peb mam li saib UPM + npm kev siv hauv qab no. Cov pob no yooj yim vim nws tso cai rau koj ua haujlwm nrog txhua yam khoom siv thiab tswj cov pob khoom, thiab tseem txhawb nqa tag nrho cov haiv neeg UPM interface.

Raws li npm repository, koj tuaj yeem siv Verdaccio. Nws muaj cov ncauj lus kom ntxaws cov ntaub ntawv, thiab nws yuav siv ob peb lo lus txib kom khiav nws.

Kev teeb tsa ib puag ncig

Ua ntej koj yuav tsum tau nruab node.js.

Tsim ib pob

Txhawm rau tsim ib pob, koj yuav tsum muab cov ntaub ntawv tso rau package.json, uas yuav piav qhia txog nws, rau cov ntawv teev npe nrog cov ntsiab lus ntawm cov pob no. Koj yuav tsum ua cov hauv qab no:

Mus rau qhov project directory uas peb xav ua ib pob.

Khiav npm init hais kom ua thiab nkag mus rau qhov yuav tsum tau muaj nyob rau hauv lub dialog. Rau lub npe, qhia lub npe nyob rau hauv rov qab sau hom, piv txwv li, com.plarium.somepackage.
Txhawm rau kom yooj yim tso saib ntawm lub npe pob, ntxiv cov khoom siv displayName rau package.json thiab sau rau hauv.

Txij li npm yog js-oriented, cov ntaub ntawv muaj cov ntsiab lus tseem ceeb thiab cov ntawv sau uas peb tsis xav tau, uas Unity tsis siv. Nws yog qhov zoo dua los tshem tawm lawv kom tsis txhob txhaws cov lus piav qhia ntawm pob. Cov ntaub ntawv yuav tsum zoo li no:

  1. Mus rau qhov project directory uas peb xav ua ib pob.
  2. Khiav npm init hais kom ua thiab nkag mus rau qhov yuav tsum tau muaj nyob rau hauv lub dialog. Rau lub npe, qhia lub npe nyob rau hauv rov qab sau hom, piv txwv li, com.plarium.somepackage.
  3. Txhawm rau kom yooj yim tso saib ntawm lub npe pob, ntxiv cov khoom siv displayName rau package.json thiab sau rau hauv.
  4. Txij li npm yog js-oriented, cov ntaub ntawv muaj cov ntsiab lus tseem ceeb thiab cov ntawv sau uas peb tsis xav tau, uas Unity tsis siv. Nws yog qhov zoo dua los tshem tawm lawv kom tsis txhob txhaws cov lus piav qhia ntawm pob. Cov ntaub ntawv yuav tsum zoo li no:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Qhib Unity thiab tsim cov ntaub ntawv .meta rau package.json (Kev sib sau tsis pom cov cuab tam yam tsis muaj .meta cov ntaub ntawv, Unity pob qhib nyeem nkaus xwb).

Xa ib pob

Txhawm rau xa ib pob, koj yuav tsum khiav cov lus txib: npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.

Txhim kho thiab hloov kho pob khoom los ntawm Unity Package Manager

Txhawm rau ntxiv ib pob rau qhov project Unity, koj yuav tsum:

  1. Sau rau ntawv manifest.json cov ntaub ntawv hais txog qhov chaw ntawm cov pob khoom. Txhawm rau ua qhov no, koj yuav tsum tau ntxiv cov cuab yeej scopedRegistries thiab qhia cov scopes thiab qhov chaw nyob ntawm qhov chaw uas cov scopes tshwj xeeb yuav raug tshawb nrhiav.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Mus rau Unity thiab qhib lub qhov rais Package Manager (ua hauj lwm nrog cov kev cai pob khoom tsis txawv ntawm kev ua hauj lwm nrog built-in sawv daws yuav).
  3. Xaiv Txhua Pob.
  4. Nrhiav cov pob uas xav tau thiab ntxiv nws.

Unity Package Manager

Ua haujlwm nrog cov ntaub ntawv thiab debugging

Txhawm rau kom cov peev txheej txuas nrog qhov project, koj yuav tsum tsim Assembly txhais rau pob.

Kev siv cov pob khoom tsis txwv lub peev xwm rau kev debugging. Txawm li cas los xij, thaum ua haujlwm nrog pob khoom hauv Unity, koj tsis tuaj yeem mus rau IDE los ntawm nias rau ntawm qhov yuam kev hauv lub console yog tias qhov yuam kev tshwm sim hauv pob. Qhov no yog vim Unity tsis pom cov ntawv sau ua cov ntaub ntawv sib cais, vim tias thaum siv Kev Sib Tham Lus Txhais, lawv tau sau rau hauv ib lub tsev qiv ntawv thiab suav nrog hauv qhov project. Thaum ua haujlwm nrog cov peev txheej los ntawm ib qhov project, nyem-los ntawm kev hloov mus rau IDE muaj.

Script nyob rau hauv ib qhov project nrog ib pob txuas:

Unity Package Manager
Tsab ntawv los ntawm pob nrog rau kev ua haujlwm breakpoint:

Unity Package Manager

Kev kho sai sai rau pob khoom

Unity tej pob khoom ntxiv rau qhov project yog nyeem nkaus xwb, tab sis tuaj yeem hloov kho hauv pob cache. Rau qhov no koj xav tau:

  1. Mus rau lub pob hauv pob cache.

    Unity Package Manager

  2. Ua qhov tsim nyog hloov.
  3. Hloov tshiab version hauv cov ntaub ntawv package.json.
  4. xa pob npm publish --registry *адрСс Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²*.
  5. Hloov cov pob version mus rau qhov kho tshiab los ntawm UPM interface.

Pob ntshuam tsis sib haum

Thaum importing tej pob khoom, cov nram qab no GUID tsis sib haum yuav tshwm sim:

  1. Pob yog ib pob. Yog hais tias, thaum importing ib pob, nws pom tias twb tau ntxiv pob khoom muaj cov cuab tam nrog tib GUID, cov khoom muaj nqis nrog cov GUIDs los ntawm cov pob tuaj txawv teb chaws yuav tsis ntxiv rau qhov project.
  2. Pob yog ib qhov project. Yog hais tias, thaum importing ib pob, nws pom tias qhov project muaj cov khoom muaj nqis nrog cov GUIDs, ces cov khoom muaj nqis ntawm pob yuav tsis muab ntxiv rau qhov project. Txawm li cas los xij, cov cuab tam uas nyob ntawm lawv yuav pib siv cov cuab tam los ntawm qhov project.

Hloov cov khoom muaj nqis los ntawm ib qhov project mus rau ib pob

Yog tias koj hloov cov khoom vaj khoom tsev los ntawm ib qhov project mus rau ib pob thaum Unity qhib, ces nws txoj haujlwm yuav raug khaws cia, thiab cov kev sib txuas hauv cov khoom muaj nqis yuav pib siv cov cuab tam los ntawm pob.

ib qho tseem ceeb: Thaum luam ib qho khoom vaj khoom tsev los ntawm ib qhov project mus rau ib lub pob, lub pob-project tsis sib haum xeeb piav nyob rau hauv nqe lus saum toj no yuav tshwm sim.

Muaj peev xwm daws tau qhov tsis sib haum xeeb

  1. Reassigning GUIDs raws li tus kheej algorithms thaum importing tag nrho cov cuab tam kom tsis txhob muaj kev sib tsoo.
  2. Ntxiv tag nrho cov cuab tam rau ib qhov project nrog lawv cov kev sib cais tom qab rau hauv pob.
  3. Tsim cov ntaub ntawv uas muaj cov GUIDs ntawm tag nrho cov cuab tam thiab siv tau thaum xa cov pob.

xaus

UPM yog qhov kev daws teeb meem tshiab rau kev faib cov peev txheej sib koom hauv Unity uas tuaj yeem yog qhov tsim nyog rau lwm txoj hauv kev uas twb muaj lawm. Cov lus pom zoo tau piav qhia hauv tsab xov xwm tau tshwm sim los ntawm cov xwm txheej tiag tiag. Peb vam tias koj pom lawv muaj txiaj ntsig.

Tau qhov twg los: www.hab.com

Ntxiv ib saib