Manajer Paket Unity

Unity minangka platform sing wis suwe saya suwe lan terus berkembang. Nanging, nalika nggarap sawetara proyek ing wektu sing padha, sampeyan isih bisa ngadhepi kesulitan nggunakake sumber umum (.cs), perpustakaan (.dll) lan aset liyane (gambar, swara, model, prefab). Ing artikel iki, kita bakal ngomong babagan pengalaman karo solusi asli kanggo masalah kasebut kanggo Unity.

Manajer Paket Unity

Metode Distribusi Sumber Daya Bersama

Ana luwih saka siji cara kanggo nggunakake sumber daya sing dienggo bareng kanggo macem-macem proyek, nanging saben pendekatan duwe pro lan kontra.

1. Duplikasi - "kanthi tangan" kita duplikat sumber daya antarane proyèk.

Pros:

  • Cocog kanggo kabeh jinis sumber daya.
  • Ora ana masalah ketergantungan.
  • Ora ana masalah karo GUID aset.

Cons:

  • Repositori raksasa.
  • Ora ana pilihan kanggo versi.
  • Kesulitan nglacak owah-owahan menyang sumber daya sing dienggo bareng.
  • Kesulitan nganyari sumber daya sing dienggo bareng.

2. Submodul Git - distribusi sumber daya sing dienggo bareng liwat submodul eksternal.

Pros:

  • Sampeyan bisa nggarap sumber.
  • Sampeyan bisa nyebarake aset.
  • Ora ana masalah ketergantungan.

Cons:

  • Katrampilan Git dibutuhake.
  • Git ora ramah banget karo file binar - sampeyan kudu nyakup LFS.
  • Kontrol akses kanggo repositori.
  • Kesulitan upgrade lan downgrade.
  • Tabrakan GUID bisa uga lan ora ana prilaku sing jelas ing Unity kanggo ngatasi.

3. NuGet - distribusi perpustakaan sing dienggo bareng liwat paket NuGet.

Pros:

  • Karya sing trep karo proyek sing ora gumantung ing Unity.
  • Versi sing trep lan résolusi dependensi.

Cons:

  • Unity ora ngerti carane nggarap paket NuGet metu saka kothak (sampeyan bisa nemokake Manajer Paket NuGet kanggo Unity ing GitHub, sing ndandani iki, nanging ana nuansa).
  • Kesulitan nyebarake jinis aset liyane.

4. Unity Package Manager - distribusi sumber daya sing dienggo bareng liwat solusi asli kanggo Unity.

Pros:

  • Antarmuka asli kanggo nggarap paket.
  • Perlindhungan marang nimpa file .meta ing paket amarga konflik GUID.
  • Kapabilitas versi.
  • Kemampuan kanggo nyebarake kabeh jinis sumber daya kanggo Unity.

Cons:

  • Konflik GUID isih bisa kedadeyan.
  • Ora ana dokumentasi kanggo implementasine.

Cara sing terakhir nduweni kaluwihan luwih akeh tinimbang kekurangan. Nanging, saiki ora populer banget amarga kekurangan dokumentasi, mula kita bakal ngrembug kanthi rinci.

Manajer Paket Unity

Unity Package Manager (sabanjuré diarani UPM) minangka alat manajemen paket. Iki ditambahake ing Unity 2018.1 lan mung digunakake kanggo paket sing dikembangake dening Unity Technologies. Nanging, wiwit versi 2018.3, bisa nambah paket khusus.

Manajer Paket Unity
Antarmuka Manager Paket Unity

Paket ora rampung ing sumber proyek (direktori Aset). Dheweke ana ing direktori sing kapisah. %projectFolder%/Library/PackageCache lan ora mengaruhi project ing sembarang cara, mung sebutno ing kode sumber ing file packages/manifest.json.

Manajer Paket Unity
Paket ing sistem file proyek

Sumber paket

UPM bisa nggunakake sawetara sumber paket:

1. Sistem berkas.

Pros:

  • Kacepetan implementasine.
  • Ora mbutuhake alat pihak katelu.

Cons:

  • kerumitan versi.
  • Akses bareng menyang sistem file dibutuhake kanggo saben wong sing nggarap proyek kasebut.

2. Repositori Git.

Pros:

  • Kabeh sing dibutuhake yaiku repositori Git.

Cons:

  • Sampeyan ora bisa ngalih ing antarane versi liwat jendhela UPM.
  • Ora bisa digunakake karo kabeh repositori Git.

3. repositori npm.

Pros:

  • Ndhukung fungsionalitas UPM kanthi lengkap lan digunakake kanggo nyebarake paket Unity resmi.

Cons:

  • Saiki nglirwakake kabeh versi senar saka paket kajaba "-preview".

Kita bakal ndeleng implementasine UPM + npm ing ngisor iki. Bundel iki trep amarga ngidini sampeyan nggarap sumber daya apa wae lan ngatur versi paket, lan uga ndhukung antarmuka UPM asli.

Minangka repositori npm, sampeyan bisa nggunakake Verdaccio. Wis rinci dokumentasi, lan mbutuhake saperangan printah kanggo mbukak.

Setelan lingkungan

Pisanan sampeyan kudu nginstal node.js.

Nggawe paket

Kanggo nggawe paket, sampeyan kudu nyelehake file kasebut package.json, sing bakal njlèntrèhaké, menyang direktori karo isi paket iki. Sampeyan kudu nindakake ing ngisor iki:

Pindhah menyang direktori proyek sing arep digawe paket.

Jalanake perintah npm init lan ketik nilai sing dibutuhake sajrone dialog. Kanggo jeneng, nemtokake jeneng ing format domain mbalikke, contone, com.plarium.somepackage.
Kanggo nampilake jeneng paket kanthi gampang, tambahake properti displayName menyang package.json lan isi.

Wiwit npm berorientasi js, file kasebut ngemot properti utama lan skrip sing ora kita butuhake, sing ora digunakake Unity. Iku luwih apik kanggo mbusak mau supaya ora clog munggah gambaran saka paket. File kasebut kudu katon kaya iki:

  1. Pindhah menyang direktori proyek sing arep digawe paket.
  2. Jalanake perintah npm init lan ketik nilai sing dibutuhake sajrone dialog. Kanggo jeneng, nemtokake jeneng ing format domain mbalikke, contone, com.plarium.somepackage.
  3. Kanggo nampilake jeneng paket kanthi gampang, tambahake properti displayName menyang package.json lan isi.
  4. Wiwit npm berorientasi js, file kasebut ngemot properti utama lan skrip sing ora kita butuhake, sing ora digunakake Unity. Iku luwih apik kanggo mbusak mau supaya ora clog munggah gambaran saka paket. File kasebut kudu katon kaya iki:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Bukak Unity lan generate file .meta kanggo package.json (Unity ora ndeleng aset tanpa file .meta, paket kanggo Unity dibukak mung diwaca).

Ngirim paket

Kanggo ngirim paket, sampeyan kudu mbukak printah: npm publish --registry *адрес до хранилища пакетов*.

Nginstal lan nganyari paket liwat Unity Package Manager

Kanggo nambah paket menyang proyek Unity, sampeyan kudu:

  1. Tulis menyang file manifest.json informasi babagan sumber paket. Kanggo nindakake iki, sampeyan kudu nambah properti scopedRegistries lan nuduhake orane katrangan lan alamat sumber ngendi orane katrangan tartamtu bakal digoleki.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Pindhah menyang Unity lan bukak jendhela Package Manager (nggawe karo paket khusus ora beda karo nggarap sing dibangun).
  3. Pilih Kabeh Paket.
  4. Temokake paket sing dibutuhake lan tambahake.

Manajer Paket Unity

Nggarap sumber lan debugging

Supaya sumber bisa disambungake menyang proyek, sampeyan kudu nggawe Definisi Majelis kanggo paket.

Panggunaan paket ora mbatesi ruang lingkup debugging. Nanging, nalika nggarap paket ing Unity, sampeyan ora bisa pindhah menyang IDE kanthi ngeklik kesalahan ing konsol yen ana kesalahan ing paket kasebut. Iki amarga Unity ora ndeleng skrip minangka file sing kapisah, amarga nalika nggunakake Definisi Majelis, diklumpukake menyang perpustakaan lan kalebu ing proyek kasebut. Nalika nggarap sumber saka proyek, transisi klik-liwat menyang IDE kasedhiya.

Skrip ing proyek kanthi paket sing disambungake:

Manajer Paket Unity
Skrip saka paket kanthi breakpoint sing bisa digunakake:

Manajer Paket Unity

Ndandani urgent kanggo paket

Paket Unity sing ditambahake menyang proyek mung diwaca, nanging bisa diowahi ing cache paket. Kanggo iki sampeyan kudu:

  1. Pindhah menyang paket ing cache paket.

    Manajer Paket Unity

  2. Nggawe owah-owahan sing perlu.
  3. Nganyari versi ing file package.json.
  4. ngirim paket npm publish --registry *адрес до хранилища пакетов*.
  5. Nganyari versi paket menyang versi sing wis didandani liwat antarmuka UPM.

Konflik impor paket

Nalika ngimpor paket, konflik GUID ing ngisor iki bisa kedadeyan:

  1. Paket iku paket. Yen, nalika ngimpor paket, ditemokake yen paket sing wis ditambahake duwe aset karo GUID sing padha, aset karo GUID sing cocog saka paket sing diimpor ora bakal ditambahake menyang proyek kasebut.
  2. Paket minangka proyek. Yen, nalika ngimpor paket, ditemokake yen proyek kasebut nduweni aset karo GUID sing cocog, mula aset saka paket kasebut ora bakal ditambahake menyang proyek kasebut. Nanging, aset sing gumantung marang dheweke bakal miwiti nggunakake aset saka proyek kasebut.

Transfer aset saka proyek menyang paket

Yen sampeyan nransfer aset saka proyek menyang paket nalika Unity mbukak, fungsine bakal dilestarekake, lan pranala menyang aset gumantung bakal miwiti nggunakake aset saka paket kasebut.

penting: Nalika nyalin aset saka project menyang paket, konflik paket-proyek diterangake ing bagean ndhuwur bakal kelakon.

Solusi sing bisa ditindakake kanggo konflik

  1. Reassigning GUIDs miturut algoritma dhewe nalika ngimpor kabeh aset supaya tabrakan.
  2. Nambahake kabeh aset menyang siji proyek kanthi pamisahan sabanjure dadi paket.
  3. Gawe database sing ngemot GUID kabeh aset lan validasi nalika ngirim paket.

kesimpulan

UPM minangka solusi anyar kanggo nyebarake sumber daya sing dienggo bareng ing Unity, sing bisa dadi alternatif sing cocog kanggo metode sing wis ana. Rekomendasi sing diterangake ing artikel kasebut muncul adhedhasar kasus nyata. Muga-muga sampeyan bisa migunani.

Source: www.habr.com

Add a comment