Package Manager - TeamCrazyPerformance/Game_study GitHub Wiki

์†Œ๊ฐœ

Unity์˜ Package Manager๋Š” Unity ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ, ๋ฆฌ์†Œ์Šค, ์„ค์ • ๋“ฑ์˜ ๋ชจ๋“ˆํ™”๋œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. .unitypackage ํ˜•์‹์˜ ํŒŒ์ผ๋กœ ๋ชจ๋“ˆํ™”๋œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ 'ํŒจํ‚ค์ง€'๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. Package Manager๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์„ Unity ํ”„๋กœ์ ํŠธ์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด Unity ํ”„๋กœ์ ํŠธ ๊ฐ„์— ์ฝ”๋“œ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ํŠนํžˆ ์žฌ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.

ํŠน์ง•

  • ๋‚ด์žฅ ํŒจํ‚ค์ง€: Unity์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: URP, HDRP, 2D ๋„๊ตฌ ๋“ฑ)์„ ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ œ3์ž ํŒจํ‚ค์ง€: Unity Asset Store๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ ์ œ๊ณต๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฒ„์ „ ๊ด€๋ฆฌ: ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•ˆ์ •์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ข…์†์„ฑ ๊ด€๋ฆฌ: ์–ด๋–ค ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ์˜์กด์„ฑ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ(๊ฐ™์ด ์„ค์น˜)ํ•ด ์ค€๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Unity ์—๋””ํ„ฐ์˜ ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ 'Window' > 'Package Manager'๋ฅผ ์„ ํƒํ•˜์—ฌ Package Manager ์ฐฝ์„ ์—ฐ๋‹ค. ์ฐฝ์˜ ์™ผ์ชฝ ์ƒ๋‹จ์—์„œ 'Packages' ๋“œ๋กญ๋‹ค์šด์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์†Œ์Šค(์˜ˆ: 'In Project', 'Unity Registry', 'My Assets' ๋“ฑ)์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์›ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ ํƒํ•œ ํ›„ 'Install', 'Update' ๋˜๋Š” 'Remove' ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜น์€ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ package.json๋‚˜ .tar.gz, .tgz ํŒŒ์ผ์„ ์ฐพ์•„ ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, git ์ €์žฅ์†Œ์—์„œ ๋ฐ”๋กœ pull ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

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

  • ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ ์ •๋ฆฌ: ํŒจํ‚ค์ง€์— ํฌํ•จ๋  ๋ชจ๋“  Property๋‚˜ Assets์„ ํŠน์ • ํด๋”์— ๊ตฌ์„ฑํ•œ๋‹ค. ์ด ํด๋”๋Š” ๋‚˜์ค‘์— ํŒจํ‚ค์ง€๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ํด๋”๊ฐ€ ๋œ๋‹ค.
  • ํŒจํ‚ค์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ƒ์„ฑ: ํŒจํ‚ค์ง€๋ฅผ ์ •์˜ํ•˜๋Š” package.json ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด ํŒŒ์ผ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„, ๋ฒ„์ „, ์˜์กด์„ฑ ๋ฐ ๊ธฐํƒ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ํฌํ•จํ•ด์•ผํ•œ๋‹ค.
{
  "name": "com.your.packagename",
  "version": "1.0.0",
  "displayName": "ํ‘œ์‹œํ•  ํŒจํ‚ค์ง€ ์ด๋ฆ„",
  "description": "ํŒจํ‚ค์ง€ ์„ค๋ช…",
  "unity": "2022.3",
  "dependencies": {
     "com.unity.some-dependency": "1.2.3"
     }
}

๊ธฐํƒ€ ์„ค์ • ํŒŒ์ผ ์ถ”๊ฐ€

  • .gitignore: ํŒจํ‚ค์ง€์™€ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ
  • CHANGELOG.md: ํŒจํ‚ค์ง€์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ
  • LICENSE.md: ํŒจํ‚ค์ง€์˜ ๋ผ์ด์„ ์Šค ์ •๋ณด
  • README.md: ํŒจํ‚ค์ง€์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ๊ธฐํƒ€ ์ •๋ณด

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

Unity ์—๋””ํ„ฐ์—์„œ Assets > Export Package...๋ฅผ ์„ ํƒ, ํŒจํ‚ค์ง€์— ํฌํ•จ๋  ํ•ญ๋ชฉ๋“ค์„ ์„ ํƒํ•˜๊ณ  Export ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

ํŒจํ‚ค์ง€ ์‚ฌ์šฉ:

ํŒจํ‚ค์ง€๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด Assets > Import Package > Custom Package...๋ฅผ ์„ ํƒํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ๋˜๋Š”, Package Manager์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋กœ์ปฌ ๊ฒฝ๋กœ๋‚˜ Git URL์„ ํ†ตํ•ด ์ง์ ‘ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.