Unity ã¯ããªãåããååšããåžžã«é²åããŠãããã©ââãããã©ãŒã ã§ãã ãã ããåæã«è€æ°ã®ãããžã§ã¯ãã§äœæ¥ããå Žåãå ±éã®ãœãŒã¹ (.cs)ãã©ã€ãã©ãª (.dll)ãããã³ãã®ä»ã®ã¢ã»ãã (ç»åããµãŠã³ããã¢ãã«ããã¬ãã) ã®äœ¿çšã§åé¡ãçºçããå¯èœæ§ããããŸãã ãã®èšäºã§ã¯ãUnity ã®ãã®ãããªåé¡ã«å¯Ÿãããã€ãã£ã ãœãªã¥ãŒã·ã§ã³ã®çµéšã«ã€ããŠèª¬æããŸãã
å ±æãªãœãŒã¹ã®é åžæ¹æ³
ããŸããŸãªãããžã§ã¯ãã§å ±æãªãœãŒã¹ã䜿çšããæ¹æ³ã¯è€æ°ãããŸãããããããã®ã¢ãããŒãã«ã¯é·æãšçæããããŸãã
1. è€è£œ â ãããžã§ã¯ãéã§ãªãœãŒã¹ããæäœæ¥ã§ãè€è£œããŸãã
é·æïŒ
- ããããçš®é¡ã®ãªãœãŒã¹ã«é©ããŠããŸãã
- äŸåé¢ä¿ã®åé¡ã¯ãããŸããã
- ã¢ã»ããã® GUID ã«ã¯åé¡ã¯ãããŸããã
çæïŒ
- 巚倧ãªãªããžããªã
- ããŒãžã§ã³ç®¡çã®å¯èœæ§ã¯ãããŸããã
- å ±æãªãœãŒã¹ãžã®å€æŽã远跡ããã®ãé£ããã
- å ±æãªãœãŒã¹ã®æŽæ°ãå°é£ã§ãã
2.
é·æïŒ
- ãœãŒã¹ãæäœã§ããŸãã
- ã¢ã»ãããé åžã§ããŸãã
- äŸåé¢ä¿ã®åé¡ã¯ãããŸããã
çæïŒ
- Git ã®çµéšãå¿ èŠã§ãã
- Git ã¯ãã€ã㪠ãã¡ã€ã«ã«ã¯ããŸââãé©ããŠããŸãããLFS ã«æ¥ç¶ããå¿ èŠããããŸãã
- ãªããžããªã®ã¢ã¯ã»ã¹å¶åŸ¡ã
- ããŒãžã§ã³ã®ã¢ããã°ã¬ãŒããšããŠã³ã°ã¬ãŒããé£ããã
- GUID ã®è¡çªãçºçããå¯èœæ§ããããŸãããUnity åŽã«ã¯è¡çªã解決ããããã®æ確ãªåäœã¯ãããŸããã
3. NuGet - NuGet ããã±ãŒãžãä»ããå ±æã©ã€ãã©ãªã®é åžã
é·æïŒ
- Unity ã«äŸåããªããããžã§ã¯ãã§ã®äœæ¥ã䟿å©ã«ãªããŸãã
- 䟿å©ãªããŒãžã§ã³ç®¡çãšäŸåé¢ä¿ã®è§£æ±ºã
çæïŒ
- Unity ã¯ããã®ãŸãŸã§ã¯ NuGet ããã±ãŒãžãæäœã§ããŸãã (GitHub ã§ããããä¿®æ£ãã NuGet Package Manager for Unity ãèŠã€ããããšãã§ããŸãããããã€ãã®ãã¥ã¢ã³ã¹ããããŸã)ã
- ä»ã®çš®é¡ã®è³ç£ãé åžããã®ãé£ããã
4. Unity Package Manager - Unity ã®ãã€ãã£ã ãœãªã¥ãŒã·ã§ã³ãä»ããå ±æãªãœãŒã¹ã®é åžã
é·æïŒ
- ããã±ãŒãžãæäœããããã®ãã€ãã£ã ã€ã³ã¿ãŒãã§ã€ã¹ã
- GUID ã®ç«¶åã«ããããã±ãŒãžå ã® .meta ãã¡ã€ã«ã®äžæžãã«å¯Ÿããä¿è·ã
- ããŒãžã§ã³ç®¡çã®å¯èœæ§ã
- Unity ã®ããããçš®é¡ã®ãªãœãŒã¹ãé åžããæ©èœã
çæïŒ
- GUID ã®ç«¶åã¯äŸç¶ãšããŠçºçããå¯èœæ§ããããŸãã
- å®è£ ã«é¢ããããã¥ã¡ã³ãã¯ãããŸããã
åŸè ã®æ¹æ³ã«ã¯ãæ¬ ç¹ãããå©ç¹ã®æ¹ãå€ããããŸãã ãã ããããã¥ã¡ã³ããäžè¶³ããŠãããããçŸåšã¯ããŸãæ®åããŠããªãããã詳ãã説æããŸãã
Unityããã±ãŒãžãããŒãžã£ãŒ
Unity Package Manager (UPM) ã¯ããã±ãŒãžç®¡çããŒã«ã§ãã ãã㯠Unity 2018.1 ã§è¿œå ãããUnity Technologies ã«ãã£ãŠéçºãããããã±ãŒãžã«ã®ã¿äœ¿çšãããŠããŸããã ãã ããããŒãžã§ã³ 2018.3 以éãã«ã¹ã¿ã ããã±ãŒãžãè¿œå ã§ããããã«ãªããŸããã
Unity ããã±ãŒãž ãããŒãžã£ãŒ ã€ã³ã¿ãŒãã§ã€ã¹
ããã±ãŒãžã¯ãããžã§ã¯ã ãœãŒã¹ (Assets ãã£ã¬ã¯ããª) ã«ã¯æ®ããŸããã ãããã¯å¥ã®ãã£ã¬ã¯ããªã«ãããŸã %projectFolder%/Library/PackageCache
ãããžã§ã¯ãã«ã¯ãŸã£ãã圱é¿ããŸããããœãŒã¹ ã³ãŒãå
ã§ã®å¯äžã®èšåã¯ãã¡ã€ã«å
ã«ãããŸãã packages/manifest.json
.
ãããžã§ã¯ã ãã¡ã€ã« ã·ã¹ãã å
ã®ããã±ãŒãž
ããã±ãŒãžãœãŒã¹
UPM ã¯ããã€ãã®ããã±ãŒãž ãœãŒã¹ã䜿çšã§ããŸãã
1. ãã¡ã€ã«ã·ã¹ãã ã
é·æïŒ
- å®è£ ã®ã¹ããŒãã
- ãµãŒãããŒãã£ã®ããŒã«ã¯å¿ èŠãããŸããã
çæïŒ
- ããŒãžã§ã³ç®¡çãé£ããã
- ãã¡ã€ã« ã·ã¹ãã ãžã®å ±æã¢ã¯ã»ã¹ã¯ããããžã§ã¯ãã§äœæ¥ããå šå¡ã«å¿ èŠã§ãã
2. Git ãªããžããªã
é·æïŒ
- å¿ èŠãªã®ã¯ Git ãªããžããªã ãã§ãã
çæïŒ
- UPM ãŠã£ã³ããŠããããŒãžã§ã³ãåãæ¿ããããšã¯ã§ããŸããã
- ãã¹ãŠã® Git ãªããžããªã§ã¯æ©èœããŸããã
3.npmãªããžããªã
é·æïŒ
- UPM æ©èœãå®å šã«ãµããŒãããå ¬åŒ Unity ããã±ãŒãžã®é åžã«äœ¿çšãããŸãã
çæïŒ
- çŸåšãã-previewããé€ãããã±ãŒãžã®ãã¹ãŠã®æååããŒãžã§ã³ã¯ç¡èŠãããŸãã
以äžã§ã¯ UPM + npm ã®å®è£ ã«ã€ããŠèŠãŠãããŸãã ãã®ãã³ãã«ã¯ãããããçš®é¡ã®ãªãœãŒã¹ãæäœããããã±ãŒãžã®ããŒãžã§ã³ã管çã§ãããã€ãã£ã UPM ã€ã³ã¿ãŒãã§ã€ã¹ãå®å šã«ãµããŒãããŠãããã䟿å©ã§ãã
npmãªããžããªãšããŠäœ¿çšã§ããŸã
ç°å¢èšå®
ãŸãã€ã³ã¹ããŒã«ããå¿
èŠããããŸã
ããã±ãŒãžã®äœæ
ããã±ãŒãžãäœæããã«ã¯ããã¡ã€ã«ãé
眮ããå¿
èŠããããŸã package.json
ããã®ããã±ãŒãžã®å
容ãå«ãŸãããã£ã¬ã¯ããªã«èšè¿°ããŸãã 次ã®ããšãè¡ãå¿
èŠããããŸãã
ããã±ãŒãžãäœæãããããžã§ã¯ã ãã£ã¬ã¯ããªã«ç§»åããŸãã
npm init ã³ãã³ããå®è¡ãããã€ã¢ãã°ã§å¿
èŠãªå€ãå
¥åããŸãã ååã«ã¯ãcom.plarium.somepackage ãªã©ãéãã¡ã€ã³åœ¢åŒã§ååãæå®ããŸãã
ããã±ãŒãžåãç°¡åã«è¡šç€ºããã«ã¯ãdisplayName ããããã£ã package.json ã«è¿œå ããŠå€ãå
¥åããŸãã
npm 㯠js æåã§ããããããã®ãã¡ã€ã«ã«ã¯ãUnity ã䜿çšããªãäžèŠãª main ããããã£ãš script ããããã£ãå«ãŸããŠããŸãã ããã±ãŒãžã®èª¬æãä¹±éã«ãªããªãããã«ãããããåé€ããããšããå§ãããŸãã ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
- ããã±ãŒãžãäœæãããããžã§ã¯ã ãã£ã¬ã¯ããªã«ç§»åããŸãã
- npm init ã³ãã³ããå®è¡ãããã€ã¢ãã°ã§å¿ èŠãªå€ãå ¥åããŸãã ååã«ã¯ãcom.plarium.somepackage ãªã©ãéãã¡ã€ã³åœ¢åŒã§ååãæå®ããŸãã
- ããã±ãŒãžåãç°¡åã«è¡šç€ºããã«ã¯ãdisplayName ããããã£ã package.json ã«è¿œå ããŠå€ãå ¥åããŸãã
- npm 㯠js æåã§ããããããã®ãã¡ã€ã«ã«ã¯ãUnity ã䜿çšããªãäžèŠãª main ããããã£ãš script ããããã£ãå«ãŸããŠããŸãã ããã±ãŒãžã®èª¬æãä¹±éã«ãªããªãããã«ãããããåé€ããããšããå§ãããŸãã ãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
{ "name": "com.plarium.somepackage", "displayName": "Some Package", "version": "1.0.0", "description": "Some Package Description", "keywords": [ "Unity", "UPM" ], "author": "AUTHOR", "license": "UNLICENSED" }
- Unity ãéããŠãpackage.json ã® .meta ãã¡ã€ã«ãçæããŸã (Unity ã§ã¯ã.meta ãã¡ã€ã«ã®ãªãã¢ã»ããã¯è¡šç€ºãããŸãããUnity ã®ããã±ãŒãžã¯èªã¿åãå°çšã§éãããŸã)ã
è·ç©ãéã
ããã±ãŒãžãéä¿¡ããã«ã¯ã次ã®ã³ãã³ããå®è¡ããå¿
èŠããããŸãã npm publish --registry *аЎÑÐµÑ ÐŽÐŸ Ñ
ÑаМОлОÑа пакеÑПв*
.
Unity Package Manager ãä»ããããã±ãŒãžã®ã€ã³ã¹ããŒã«ãšæŽæ°
Unity ãããžã§ã¯ãã«ããã±ãŒãžãè¿œå ããã«ã¯ã次ã®ããšãè¡ãå¿ èŠããããŸãã
- ãã¡ã€ã«ã«è¿œå
manifest.json
ããã±ãŒãžã®ãœãŒã¹ã«é¢ããæ å ±ã ãããè¡ãã«ã¯ãããããã£ãè¿œå ããå¿ èŠããããŸãscopedRegistries
ç¹å®ã®ã¹ã³ãŒããæ€çŽ¢ãããã¹ã³ãŒããšãœãŒã¹ ã¢ãã¬ã¹ã瀺ããŸãã"scopedRegistries": [ { "name": "Main", "url": "аЎÑÐµÑ ÐŽÐŸ Ñ ÑаМОлОÑа пакеÑПв", "scopes": [ "com.plarium" ] } ]
- Unity ã«ç§»åããããã±ãŒãž ãããŒãžã£ãŒ ãŠã£ã³ããŠãéããŸã (ã«ã¹ã¿ã ããã±ãŒãžã§ã®äœæ¥ã¯ãçµã¿èŸŒã¿ããã±ãŒãžã§ã®äœæ¥ãšäœãå€ãããŸãã)ã
- ãã¹ãŠã®ããã±ãŒãžãéžæããŸãã
- å¿ èŠãªããã±ãŒãžãèŠã€ããŠè¿œå ããŸãã
ãœãŒã¹ã®æäœãšãããã°
ãœãŒã¹ããããžã§ã¯ãã«æ¥ç¶ããã«ã¯ã以äžãäœæããå¿
èŠããããŸãã
ããã±ãŒãžã䜿çšããŠãããããã° ãªãã·ã§ã³ã¯å¶éãããŸããã ãã ããUnity ã§ããã±ãŒãžãæäœããå Žåãããã±ãŒãžå ã§ãšã©ãŒãçºçããå Žåãã³ã³ãœãŒã«ã§ãšã©ãŒãã¯ãªãã¯ããŠã IDE ã«ç§»åããããšã¯ã§ããŸããã ããã¯ãã¢ã»ã³ããªå®çŸ©ã䜿çšãããšã¹ã¯ãªãããã©ã€ãã©ãªã«åéããããããžã§ã¯ãã«çµã¿èŸŒãŸãããããUnity ãã¹ã¯ãªãããå¥åã®ãã¡ã€ã«ãšããŠèªèããªãããã§ãã ãããžã§ã¯ãã®ãœãŒã¹ãæäœããå Žåãã¯ãªãã¯ã㊠IDE ã䜿çšã§ããŸãã
æ¥ç¶ãããããã±ãŒãžãå«ããããžã§ã¯ãå ã®ã¹ã¯ãªãã:
äœæ¥ãã¬ãŒã¯ãã€ã³ãã䜿çšããŠããã±ãŒãžããã¹ã¯ãªãããäœæããŸãã
ããã±ãŒãžã®ç·æ¥ä¿®æ£
ãããžã§ã¯ãã«è¿œå ããã Unity ããã±ãŒãžã¯èªã¿åãå°çšã§ãããããã±ãŒãž ãã£ãã·ã¥å ã§ç·šéã§ããŸãã ãããè¡ãã«ã¯ã次ã®ãã®ãå¿ èŠã§ãã
- ããã±ãŒãžãã£ãã·ã¥å
ã®ããã±ãŒãžã«ç§»åããŸãã
- å¿ èŠãªå€æŽãå ããŸãã
- ãã¡ã€ã«å
ã®ããŒãžã§ã³ãæŽæ°ãã
package.json
. - è·ç©ãéã
npm publish --registry *аЎÑÐµÑ ÐŽÐŸ Ñ ÑаМОлОÑа пакеÑПв*
. - UPM ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãããã±ãŒãžã®ããŒãžã§ã³ãä¿®æ£ãããããŒãžã§ã³ã«æŽæ°ããŸãã
ããã±ãŒãžã®ã€ã³ããŒãã®ç«¶å
ããã±ãŒãžãã€ã³ããŒããããšãã«ã次㮠GUID ã®ç«¶åãçºçããå¯èœæ§ããããŸãã
- ããã±ãŒãž - ããã±ãŒãžã ããã±ãŒãžãã€ã³ããŒããããšãã«ãæ¢ã«è¿œå ãããããã±ãŒãžã«åã GUID ãæã€ã¢ã»ãããå«ãŸããŠããããšãå€æããå Žåãã€ã³ããŒããããããã±ãŒãžããäžèŽãã GUID ãæã€ã¢ã»ããã¯ãããžã§ã¯ãã«è¿œå ãããŸããã
- ããã±ãŒãžã¯ãããžã§ã¯ãã§ãã ããã±ãŒãžãã€ã³ããŒããããšãã«ãäžèŽãã GUID ãæã€ã¢ã»ããããããžã§ã¯ãã«å«ãŸããŠããããšãå€æããå Žåãããã±ãŒãžã®ã¢ã»ããã¯ãããžã§ã¯ãã«è¿œå ãããŸããã ãã ãããããã«äŸåããã¢ã»ããã¯ããããžã§ã¯ãã®ã¢ã»ããã®äœ¿çšãéå§ããŸãã
ãããžã§ã¯ãããããã±ãŒãžãžã®ã¢ã»ããã®è»¢é
Unity ãéããŠãããšãã«ãããžã§ã¯ãããããã±ãŒãžã«ã¢ã»ããã転éãããšããã®æ©èœã¯ä¿æãããäŸåã¢ã»ããå ã®ãªã³ã¯ã¯ããã±ãŒãžã®ã¢ã»ããã®äœ¿çšãéå§ããŸãã
ãããéèŠã : ã¢ã»ããããããžã§ã¯ãããããã±ãŒãžã«ã³ããŒãããšãäžã®ã»ã¯ã·ã§ã³ã§èª¬æãããããã±ãŒãž - ãããžã§ã¯ããã®ç«¶åãçºçããŸãã
çŽäºã«å¯Ÿããèãããã解決ç
- ãã¹ãŠã®ã¢ã»ãããã€ã³ããŒããããšãã«ç¬èªã®ã¢ã«ãŽãªãºã ã䜿çšã㊠GUID ãåå²ãåœãŠããè¡çªãæé€ããŸãã
- ãã¹ãŠã®ã¢ã»ããã XNUMX ã€ã®ãããžã§ã¯ãã«è¿œå ããããããããã±ãŒãžã«åå²ããŸãã
- ãã¹ãŠã®ã¢ã»ããã® GUID ãå«ãããŒã¿ããŒã¹ãäœæããããã±ãŒãžéä¿¡æã«æ€èšŒãå®è¡ããŸãã
ãŸãšã
UPM 㯠Unity ã§å
±æãªãœãŒã¹ãé
åžããããã®æ°ãããœãªã¥ãŒã·ã§ã³ã§ãããæ¢åã®æ¹æ³ã«ä»£ãã䟡å€ã®ãããœãªã¥ãŒã·ã§ã³ãšãªããŸãã ãã®èšäºã§èª¬æãããŠããæšå¥šäºé
ã¯å®éã®äºäŸã«åºã¥ããŠããŸãã ãã²ã圹ç«ãŠãã ããã
åºæïŒ habr.com