Unity Package Manager

Isokan jẹ pẹpẹ ti o ti wa ni ayika fun igba diẹ ati pe o n dagba nigbagbogbo. Sibẹsibẹ, nigba ṣiṣẹ ninu rẹ pẹlu awọn iṣẹ akanṣe pupọ ni akoko kanna, o tun le ba pade awọn iṣoro ni lilo awọn orisun ti o wọpọ (.cs), awọn ile-ikawe (.dll) ati awọn ohun-ini miiran (awọn aworan, awọn ohun, awọn awoṣe, awọn iṣaaju). Ninu nkan yii a yoo sọrọ nipa iriri wa pẹlu ojutu abinibi si iru iṣoro kan fun Isokan.

Unity Package Manager

Awọn ọna Pipin Awọn orisun Pipin

Ọna ju ọkan lọ lati lo awọn orisun pinpin fun awọn iṣẹ akanṣe oriṣiriṣi, ṣugbọn ọna kọọkan ni awọn anfani ati alailanfani rẹ.

1. Idapọ - a ṣe ẹda awọn orisun laarin awọn iṣẹ akanṣe “nipa ọwọ.”

Aleebu:

  • Dara fun gbogbo awọn orisi ti oro.
  • Ko si awọn iṣoro igbẹkẹle.
  • Ko si awọn iṣoro pẹlu awọn GUID dukia.

Konsi:

  • Awọn ibi ipamọ nla.
  • Ko si seese ti ikede.
  • Awọn iyipada ipasẹ iṣoro si awọn orisun ti a pin.
  • Iṣoro lati ṣe imudojuiwọn awọn orisun pinpin.

2. Git submodules - pinpin awọn orisun pinpin nipasẹ awọn submodules ita.

Aleebu:

  • O le ṣiṣẹ pẹlu awọn orisun.
  • O le pin awọn ohun-ini.
  • Ko si awọn iṣoro igbẹkẹle.

Konsi:

  • Iriri Git nilo.
  • Git kii ṣe ọrẹ pupọ pẹlu awọn faili alakomeji - iwọ yoo ni lati sopọ LFS.
  • Iṣakoso wiwọle fun awọn ibi ipamọ.
  • Iṣoro pẹlu iṣagbega ati idinku awọn ẹya.
  • Awọn ijamba GUID ṣee ṣe ati pe ko si ihuwasi ti o han gbangba ni apakan Isokan lati yanju wọn.

3. NuGet - pinpin pinpin awọn ile-ikawe nipasẹ awọn idii NuGet.

Aleebu:

  • Irọrun iṣẹ pẹlu awọn ise agbese ti ko da lori isokan.
  • Irọrun ti ikede ati ipinnu igbẹkẹle.

Konsi:

  • Iṣọkan ko le ṣiṣẹ pẹlu awọn idii NuGet jade kuro ninu apoti (lori GitHub o le wa Oluṣakoso Package NuGet fun Isokan, eyiti o ṣe atunṣe eyi, ṣugbọn awọn nuances kan wa).
  • Awọn iṣoro ni pinpin awọn iru ohun-ini miiran.

4. Unity Package Manager - pinpin awọn ohun elo ti a pin nipasẹ ojutu abinibi fun Isokan.

Aleebu:

  • Ni wiwo abinibi fun ṣiṣẹ pẹlu awọn idii.
  • Idaabobo lodi si atunkọ awọn faili .meta ni awọn akojọpọ nitori awọn ija GUID.
  • O ṣeeṣe ti ikede.
  • Agbara lati pin gbogbo iru awọn orisun fun Isokan.

Konsi:

  • Awọn ija GUID tun le waye.
  • Ko si iwe fun imuse.

Ọna igbehin ni awọn anfani diẹ sii ju awọn alailanfani lọ. Sibẹsibẹ, kii ṣe olokiki pupọ ni bayi nitori aini iwe, ati nitorinaa a yoo gbe lori rẹ ni awọn alaye.

Unity Package Manager

Alakoso Iṣọkan Iṣọkan (UPM) jẹ irinṣẹ iṣakoso package kan. O ti ṣafikun ni isokan 2018.1 ati pe a lo fun awọn idii nikan ti o dagbasoke nipasẹ Awọn Imọ-ẹrọ Unity. Sibẹsibẹ, bẹrẹ pẹlu ẹya 2018.3, o ṣee ṣe lati ṣafikun awọn idii aṣa.

Unity Package Manager
Isokan Package Manager Interface

Awọn idii ko pari ni awọn orisun ise agbese (Liana Awọn ohun-ini). Wọn ti wa ni lọtọ liana %projectFolder%/Library/PackageCache ati pe ko ni ipa lori iṣẹ akanṣe ni eyikeyi ọna, mẹnukan wọn nikan ninu koodu orisun wa ninu faili naa packages/manifest.json.

Unity Package Manager
Awọn idii ninu eto faili ise agbese

Awọn orisun idii

UPM le lo ọpọlọpọ awọn orisun package:

1. Faili eto.

Aleebu:

  • Iyara ti imuse.
  • Ko nilo awọn irinṣẹ ẹnikẹta.

Konsi:

  • Iṣoro ni ti ikede.
  • Wiwọle pinpin si eto faili ni a nilo fun gbogbo eniyan ti n ṣiṣẹ pẹlu iṣẹ akanṣe naa.

2. Git ibi ipamọ.

Aleebu:

  • Gbogbo ohun ti o nilo ni ibi ipamọ Git kan.

Konsi:

  • O ko le yipada laarin awọn ẹya nipasẹ window UPM.
  • Ko ṣiṣẹ pẹlu gbogbo awọn ibi ipamọ Git.

3. npm ibi ipamọ.

Aleebu:

  • Ṣe atilẹyin iṣẹ ṣiṣe UPM ni kikun ati pe o lo lati kaakiri awọn idii Iṣọkan osise.

Konsi:

  • Lọwọlọwọ kọju gbogbo awọn ẹya okun ti awọn idii ayafi “-awotẹlẹ”.

Ni isalẹ a yoo wo imuse UPM + npm. Lapapo yii rọrun nitori pe o gba ọ laaye lati ṣiṣẹ pẹlu eyikeyi iru orisun ati ṣakoso awọn ẹya package, ati tun ṣe atilẹyin ni kikun wiwo UPM abinibi.

O le lo bi ibi ipamọ npm kan Verdaccio. Alaye wa iwe, ati pe awọn aṣẹ meji kan ni o nilo lati ṣiṣẹ.

Ṣiṣeto ayika

Ni akọkọ o nilo lati fi sori ẹrọ node.js.

Ṣiṣẹda package

Lati ṣẹda package, o nilo lati gbe faili naa package.json, eyi ti yoo ṣe apejuwe rẹ, si itọsọna pẹlu awọn akoonu ti package yii. O nilo lati ṣe awọn wọnyi:

Lọ si itọsọna iṣẹ akanṣe ti a fẹ ṣe package kan.

Ṣiṣe aṣẹ npm init ki o tẹ awọn iye ti o nilo lakoko ibaraẹnisọrọ naa. Fun orukọ, pato orukọ naa ni ọna kika agbegbe, fun apẹẹrẹ com.plarium.somepackage.
Lati ṣe afihan orukọ package ni irọrun, ṣafikun ohun-ini ifihanName si package.json ki o kun.

Niwọn igba ti npm jẹ js-Oorun, faili naa ni akọkọ ati awọn ohun-ini awọn iwe afọwọkọ ti a ko nilo, eyiti Isokan ko lo. O dara lati yọ wọn kuro ki o má ba ṣe clutter apejuwe package. Faili yẹ ki o dabi nkan bi eyi:

  1. Lọ si itọsọna iṣẹ akanṣe ti a fẹ ṣe package kan.
  2. Ṣiṣe aṣẹ npm init ki o tẹ awọn iye ti o nilo lakoko ibaraẹnisọrọ naa. Fun orukọ, pato orukọ naa ni ọna kika agbegbe, fun apẹẹrẹ com.plarium.somepackage.
  3. Lati ṣe afihan orukọ package ni irọrun, ṣafikun ohun-ini ifihanName si package.json ki o kun.
  4. Niwọn igba ti npm jẹ js-Oorun, faili naa ni akọkọ ati awọn ohun-ini awọn iwe afọwọkọ ti a ko nilo, eyiti Isokan ko lo. O dara lati yọ wọn kuro ki o má ba ṣe clutter apejuwe package. Faili yẹ ki o dabi nkan bi eyi:
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Ṣii Iṣọkan ati ṣe ina faili .meta kan fun package.json (Iṣọkan ko rii awọn ohun-ini laisi awọn faili .meta, awọn idii fun Iṣọkan ti ṣii kika-nikan).

Fifiranṣẹ package kan

Lati fi package ranṣẹ o nilo lati ṣiṣẹ aṣẹ naa: npm publish --registry *адрес до хранилища пакетов*.

Fifi ati imudojuiwọn awọn idii nipasẹ Unity Package Manager

Lati ṣafikun package kan si iṣẹ akanṣe Iṣọkan, o nilo:

  1. Fikun-un si faili manifest.json alaye nipa awọn orisun ti awọn idii. Lati ṣe eyi o nilo lati ṣafikun ohun-ini naa scopedRegistries ati tọkasi awọn aaye ati adirẹsi orisun nibiti awọn aaye kan pato yoo wa.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "адрес до хранилища пакетов",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Lọ si Iṣọkan ati ṣii window Oluṣakoso Package (ṣiṣẹ pẹlu awọn idii aṣa ko yatọ si ṣiṣẹ pẹlu awọn ti a ṣe sinu).
  3. Yan Gbogbo Awọn akopọ.
  4. Wa package ti o nilo ki o ṣafikun.

Unity Package Manager

Ṣiṣẹ pẹlu awọn orisun ati n ṣatunṣe aṣiṣe

Ni ibere fun awọn orisun lati wa ni asopọ si ise agbese, o nilo lati ṣẹda Apejọ Definition fun package.

Lilo awọn idii ko ṣe idinwo awọn aṣayan n ṣatunṣe aṣiṣe rẹ. Sibẹsibẹ, nigba ṣiṣẹ pẹlu awọn idii ni Isokan, o ko le lọ si IDE nipa tite lori aṣiṣe ninu console ti aṣiṣe ba waye ninu package. Eyi jẹ nitori otitọ pe isokan ko rii awọn iwe afọwọkọ bi awọn faili lọtọ, nitori nigba lilo Itumọ Apejọ wọn gba sinu ile-ikawe kan ati pe o wa ninu iṣẹ naa. Nigbati o ba n ṣiṣẹ pẹlu awọn orisun lati iṣẹ akanṣe kan, titẹ si IDE wa.

Iwe afọwọkọ ninu iṣẹ akanṣe kan pẹlu package ti o sopọ:

Unity Package Manager
Iwe afọwọkọ lati inu package pẹlu aaye isinmi ti n ṣiṣẹ:

Unity Package Manager

Awọn atunṣe kiakia si awọn idii

Awọn idii isokan ti a ṣafikun si iṣẹ akanṣe kan jẹ kika-nikan, ṣugbọn o le ṣatunkọ ni kaṣe package. Lati ṣe eyi o nilo:

  1. Lọ si package ni kaṣe package.

    Unity Package Manager

  2. Ṣe awọn pataki ayipada.
  3. Ṣe imudojuiwọn ẹya ninu faili package.json.
  4. Firanṣẹ package npm publish --registry *адрес до хранилища пакетов*.
  5. Ṣe imudojuiwọn ẹya package si ọkan ti a ṣe atunṣe nipasẹ wiwo UPM.

Awọn ija agbewọle akopọ

Awọn ija GUID wọnyi le waye nigba gbigbe awọn akojọpọ wọle:

  1. Package - package. Ti, nigbati o ba n gbe package wọle, o ṣe awari pe awọn idii ti a ṣafikun tẹlẹ ni awọn ohun-ini pẹlu GUID kanna, awọn ohun-ini pẹlu awọn GUIDs ti o baamu lati package ti a ko wọle ko ni ṣafikun si iṣẹ akanṣe naa.
  2. Apo jẹ iṣẹ akanṣe kan. Ti, nigbati o ba n gbe apoti wọle, o ṣe awari pe iṣẹ akanṣe naa ni awọn ohun-ini pẹlu awọn GUID ti o baamu, lẹhinna awọn ohun-ini lati package kii yoo ṣafikun si iṣẹ naa. Sibẹsibẹ, awọn ohun-ini ti o dale lori wọn yoo bẹrẹ lilo awọn ohun-ini lati inu iṣẹ naa.

Gbigbe awọn ohun-ini lati iṣẹ akanṣe kan si package kan

Ti o ba gbe ohun-ini kan lati iṣẹ akanṣe kan si package lakoko ti Isokan wa ni sisi, iṣẹ ṣiṣe rẹ yoo wa ni fipamọ, ati awọn ọna asopọ ni awọn ohun-ini ti o gbẹkẹle yoo bẹrẹ lati lo dukia lati package.

pataki: Nigbati o ba n daakọ dukia kan lati inu iṣẹ akanṣe kan si package, rogbodiyan “Package - Project” ti a ṣalaye ni apakan loke yoo waye.

Awọn ojutu ti o ṣeeṣe si awọn ija

  1. Ṣiṣe atunto awọn GUID ni lilo awọn algoridimu tiwa nigba gbigbe gbogbo ohun-ini wọle lati yọkuro awọn ikọlu.
  2. Ṣafikun gbogbo awọn ohun-ini si iṣẹ akanṣe kan lẹhinna pin wọn si awọn idii.
  3. Ṣiṣẹda aaye data ti o ni awọn GUID ti gbogbo awọn ohun-ini ati ṣiṣe afọwọsi nigba fifiranṣẹ awọn idii.

ipari

UPM jẹ ojutu tuntun fun pinpin awọn orisun pinpin ni Isokan, eyiti o le jẹ yiyan ti o yẹ si awọn ọna ti o wa tẹlẹ. Awọn iṣeduro ti a ṣalaye ninu nkan naa da lori awọn ọran gidi. A nireti pe o rii wọn wulo.

orisun: www.habr.com

Fi ọrọìwòye kun