Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

Unity๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ ์กด์žฌํ•ด ์™”์œผ๋ฉฐ ๋Š์ž„์—†์ด ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๋Š” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋กœ ์ž‘์—…ํ•  ๋•Œ ๊ณตํ†ต ์†Œ์Šค(.cs), ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(.dll) ๋ฐ ๊ธฐํƒ€ ์ž์‚ฐ(์ด๋ฏธ์ง€, ์‚ฌ์šด๋“œ, ๋ชจ๋ธ, ํ”„๋ฆฌํŒน)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์—ฌ์ „ํžˆ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Unity์˜ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์†”๋ฃจ์…˜ ๊ฒฝํ—˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

๊ณต์œ  ์ž์› ๋ถ„๋ฐฐ ๋ฐฉ๋ฒ•

๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ์— ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๊ฐ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋ณต์ œ - ํ”„๋กœ์ ํŠธ ๊ฐ„ ๋ฆฌ์†Œ์Šค๋ฅผ "์ˆ˜๋™์œผ๋กœ" ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

์žฅ์  :

  • ๋ชจ๋“  ์œ ํ˜•์˜ ์ž์›์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜์กด์„ฑ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ž์‚ฐ GUID์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์  :

  • ๊ฑฐ๋Œ€ํ•œ ์ €์žฅ์†Œ.
  • ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต์œ  ๋ฆฌ์†Œ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2. Git ํ•˜์œ„ ๋ชจ๋“ˆ โ€” ์™ธ๋ถ€ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ†ตํ•œ ๊ณต์œ  ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ.

์žฅ์  :

  • ์†Œ์Šค๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž์‚ฐ์„ ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜์กด์„ฑ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์  :

  • Git ๊ฒฝํ—˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Git์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ๊ทธ๋‹ค์ง€ ์นœ์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. LFS๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด.
  • ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • GUID ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ Unity ์ธก์˜ ๋ช…ํ™•ํ•œ ๋™์ž‘์€ ์—†์Šต๋‹ˆ๋‹ค.

3. NuGet - NuGet ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐฐํฌ์ž…๋‹ˆ๋‹ค.

์žฅ์  :

  • Unity์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŽธ๋ฆฌํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ์ข…์†์„ฑ ํ•ด๊ฒฐ.

๋‹จ์  :

  • Unity๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ NuGet ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. GitHub์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” Unity์šฉ NuGet ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์ž์‚ฐ์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

4. Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž - Unity์šฉ ๊ธฐ๋ณธ ์†”๋ฃจ์…˜์„ ํ†ตํ•ด ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

์žฅ์  :

  • ํŒจํ‚ค์ง€ ์ž‘์—…์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
  • GUID ์ถฉ๋Œ๋กœ ์ธํ•ด ํŒจํ‚ค์ง€์˜ .meta ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์„ฑ.
  • Unity๋ฅผ ์œ„ํ•œ ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ.

๋‹จ์  :

  • GUID ์ถฉ๋Œ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ›„์ž์˜ ๋ฐฉ๋ฒ•์€ ๋‹จ์ ๋ณด๋‹ค ์žฅ์ ์ด ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ๋Š” ๋ฌธ์„œ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๊ทธ๋‹ค์ง€ ์ธ๊ธฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

UPM(Unity Package Manager)์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Unity 2018.1์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ Unity Technologies์—์„œ ๊ฐœ๋ฐœํ•œ ํŒจํ‚ค์ง€์—๋งŒ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 2018.3 ๋ฒ„์ „๋ถ€ํ„ฐ ์ปค์Šคํ…€ ํŒจํ‚ค์ง€ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ธํ„ฐํŽ˜์ด์Šค

ํŒจํ‚ค์ง€๋Š” ํ”„๋กœ์ ํŠธ ์†Œ์Šค(Assets ๋””๋ ‰ํ„ฐ๋ฆฌ)์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค %projectFolder%/Library/PackageCache ์–ด๋–ค ์‹์œผ๋กœ๋“  ํ”„๋กœ์ ํŠธ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์–ธ๊ธ‰๋œ ์œ ์ผํ•œ ๋‚ด์šฉ์€ ํŒŒ์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค. packages/manifest.json.

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒจํ‚ค์ง€

ํŒจํ‚ค์ง€ ์†Œ์Šค

UPM์€ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํŒŒ์ผ ์‹œ์Šคํ…œ.

์žฅ์  :

  • ๊ตฌํ˜„ ์†๋„.
  • ํƒ€์‚ฌ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹จ์  :

  • ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์€ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ณต์œ  ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2. Git ์ €์žฅ์†Œ.

์žฅ์  :

  • ํ•„์š”ํ•œ ๊ฒƒ์€ Git ์ €์žฅ์†Œ๋ฟ์ž…๋‹ˆ๋‹ค.

๋‹จ์  :

  • UPM ์ฐฝ์„ ํ†ตํ•ด ๋ฒ„์ „ ๊ฐ„์— ์ „ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3. npm ์ €์žฅ์†Œ.

์žฅ์  :

  • UPM ๊ธฐ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋ฉฐ ๊ณต์‹ Unity ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์  :

  • ํ˜„์žฌ "-preview"๋ฅผ ์ œ์™ธํ•œ ํŒจํ‚ค์ง€์˜ ๋ชจ๋“  ๋ฌธ์ž์—ด ๋ฒ„์ „์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ๋Š” UPM + npm ๊ตฌํ˜„์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒˆ๋“ค์€ ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค๋กœ ์ž‘์—…ํ•˜๊ณ  ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ UPM ์ธํ„ฐํŽ˜์ด์Šค๋„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋ฏ€๋กœ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

npm ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋ฒ ๋ฅด๋‹ค์น˜์˜ค. ์ƒ์„ธํ•œ ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค ๋ฌธ์„œ, ์ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์„ค์ •

๋จผ์ € ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค node.js.

ํŒจํ‚ค์ง€ ๋งŒ๋“ค๊ธฐ

ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ํŒŒ์ผ์„ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. package.json, ์ด ํŒจํ‚ค์ง€์˜ ๋‚ด์šฉ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๋ ค๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

npm init ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ๋Œ€ํ™” ์ƒ์ž์—์„œ ํ•„์š”ํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฆ„์—๋Š” ์—ญ๋ฐฉํ–ฅ ๋„๋ฉ”์ธ ํ˜•์‹(์˜ˆ: com.plarium.somepackage)์œผ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ‘œ์‹œํ•˜๋ ค๋ฉด package.json์— displayName ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ฑ„์›Œ์ฃผ์„ธ์š”.

npm์€ js ์ง€ํ–ฅ์ด๋ฏ€๋กœ ํŒŒ์ผ์—๋Š” Unity์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์†์„ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์„ค๋ช…์ด ๋ณต์žกํ•ด์ง€์ง€ ์•Š๋„๋ก ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๋ ค๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. npm init ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ๋Œ€ํ™” ์ƒ์ž์—์„œ ํ•„์š”ํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฆ„์—๋Š” ์—ญ๋ฐฉํ–ฅ ๋„๋ฉ”์ธ ํ˜•์‹(์˜ˆ: com.plarium.somepackage)์œผ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ‘œ์‹œํ•˜๋ ค๋ฉด package.json์— displayName ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ฑ„์›Œ์ฃผ์„ธ์š”.
  4. npm์€ js ์ง€ํ–ฅ์ด๋ฏ€๋กœ ํŒŒ์ผ์—๋Š” Unity์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์†์„ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์„ค๋ช…์ด ๋ณต์žกํ•ด์ง€์ง€ ์•Š๋„๋ก ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    {
     "name": "com.plarium.somepackage",
     "displayName": "Some Package",
     "version": "1.0.0",
     "description": "Some Package Description",
     "keywords": [
       "Unity",
       "UPM"
     ],
     "author": "AUTHOR",
     "license": "UNLICENSED"
    }

  5. Unity๋ฅผ ์—ด๊ณ  package.json์— ๋Œ€ํ•œ .meta ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(Unity๋Š” .meta ํŒŒ์ผ์ด ์—†๋Š” ์ž์‚ฐ์„ ๋ณผ ์ˆ˜ ์—†์œผ๋ฉฐ Unity์šฉ ํŒจํ‚ค์ง€๋Š” ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค).

ํŒจํ‚ค์ง€ ๋ณด๋‚ด๊ธฐ

ํŒจํ‚ค์ง€๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. npm publish --registry *ะฐะดั€ะตั ะดะพ ั…ั€ะฐะฝะธะปะธั‰ะฐ ะฟะฐะบะตั‚ะพะฒ*.

Unity Package Manager๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ

Unity ํ”„๋กœ์ ํŠธ์— ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒŒ์ผ์— ์ถ”๊ฐ€ manifest.json ํŒจํ‚ค์ง€ ์†Œ์Šค์— ๋Œ€ํ•œ ์ •๋ณด. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. scopedRegistries ํŠน์ • ๋ฒ”์œ„๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋ฒ”์œ„์™€ ์†Œ์Šค ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    
    "scopedRegistries": [
       {
         "name": "Main",
         "url": "ะฐะดั€ะตั ะดะพ ั…ั€ะฐะฝะธะปะธั‰ะฐ ะฟะฐะบะตั‚ะพะฒ",
         "scopes": [
           "com.plarium"
         ]
       }
     ]
    
  2. Unity๋กœ ์ด๋™ํ•˜์—ฌ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ์—ฝ๋‹ˆ๋‹ค(์ปค์Šคํ…€ ํŒจํ‚ค์ง€ ์ž‘์—…์€ ๋‚ด์žฅ ํŒจํ‚ค์ง€ ์ž‘์—…๊ณผ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
  3. ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์•„์„œ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

์†Œ์Šค ์ž‘์—… ๋ฐ ๋””๋ฒ„๊น…

์†Œ์Šค๋ฅผ ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋ฆฌ ์ •์˜ ํŒจํ‚ค์ง€๋ฅผ ์œ„ํ•ด.

ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋””๋ฒ„๊น… ์˜ต์…˜์ด ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Unity์—์„œ ํŒจํ‚ค์ง€ ์ž‘์—… ์‹œ ํŒจํ‚ค์ง€์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ฝ˜์†”์—์„œ ํ•ด๋‹น ์˜ค๋ฅ˜๋ฅผ ํด๋ฆญํ•˜์—ฌ IDE๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ์ •์˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ˆ˜์ง‘๋˜์–ด ํ”„๋กœ์ ํŠธ์— ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— Unity๊ฐ€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ณด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ์†Œ์Šค๋กœ ์ž‘์—…ํ•  ๋•Œ IDE๋ฅผ ํด๋ฆญํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์Šคํฌ๋ฆฝํŠธ:

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
์ž‘๋™ ์ค‘๋‹จ์ ์ด ์žˆ๋Š” ํŒจํ‚ค์ง€์˜ ์Šคํฌ๋ฆฝํŠธ:

Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๊ธด๊ธ‰ ์ˆ˜์ •

ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋œ Unity ํŒจํ‚ค์ง€๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด์ง€๋งŒ ํŒจํ‚ค์ง€ ์บ์‹œ์—์„œ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŒจํ‚ค์ง€ ์บ์‹œ์˜ ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    Unity ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

  2. ํ•„์š”ํ•œ ์‚ฌํ•ญ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  3. ํŒŒ์ผ์˜ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ package.json.
  4. ํŒจํ‚ค์ง€ ๋ณด๋‚ด๊ธฐ npm publish --registry *ะฐะดั€ะตั ะดะพ ั…ั€ะฐะฝะธะปะธั‰ะฐ ะฟะฐะบะตั‚ะพะฒ*.
  5. UPM ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ์ˆ˜์ •๋œ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.

ํŒจํ‚ค์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ ์ถฉ๋Œ

ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ GUID ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํŒจํ‚ค์ง€ - ํŒจํ‚ค์ง€. ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ด๋ฏธ ์ถ”๊ฐ€๋œ ํŒจํ‚ค์ง€์— ๋™์ผํ•œ GUID๋ฅผ ๊ฐ€์ง„ ์ž์‚ฐ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฐ€์ ธ์˜จ ํŒจํ‚ค์ง€์˜ GUID๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์ž์‚ฐ์ด ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ํŒจํ‚ค์ง€๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ํ”„๋กœ์ ํŠธ์— ์ผ์น˜ํ•˜๋Š” GUID๊ฐ€ ์žˆ๋Š” ์ž์‚ฐ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ฐœ๊ฒฌ๋˜๋ฉด ํŒจํ‚ค์ง€์˜ ์ž์‚ฐ์ด ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์— ์˜์กดํ•˜๋Š” ์ž์‚ฐ์€ ํ”„๋กœ์ ํŠธ์˜ ์ž์‚ฐ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ ํŒจํ‚ค์ง€๋กœ ์—์…‹ ์ „์†ก

Unity๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ ํ”„๋กœ์ ํŠธ์—์„œ ํŒจํ‚ค์ง€๋กœ ์—์…‹์„ ์ „์†กํ•˜๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์œ ์ง€๋˜๊ณ  ์ข…์† ์—์…‹์˜ ๋งํฌ๋Š” ํŒจํ‚ค์ง€์˜ ์—์…‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ผ์ด์•ผ: ํ”„๋กœ์ ํŠธ์—์„œ ํŒจํ‚ค์ง€๋กœ ์—์…‹์„ ๋ณต์‚ฌํ•  ๋•Œ ์œ„ ์„น์…˜์—์„œ ์„ค๋ช…ํ•œ "ํŒจํ‚ค์ง€ - ํ”„๋กœ์ ํŠธ" ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐˆ๋“ฑ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…

  1. ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ž์‚ฐ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ž์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ GUID๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  ์—์…‹์„ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ํŒจํ‚ค์ง€๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
  3. ๋ชจ๋“  ์ž์‚ฐ์˜ GUID๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

UPM์€ Unity์—์„œ ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์†”๋ฃจ์…˜์œผ๋กœ, ๊ธฐ์กด ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ฐ€์น˜ ์žˆ๋Š” ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ์— ์„ค๋ช…๋œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •๋ณด๊ฐ€ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com