Libraries - kuimoani/defold GitHub Wiki
Libraries
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฅ์ ํ๋ก์ ํธ๊ฐ ์์ ์ ๊ณต์ ํ ์ ์๊ฒ ํด ์ค๋๋ค. ์ด๋ ๊ฐ๋จํ์ง๋ง ๋งค์ฐ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ผ๋ก์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ฉ๋ด์ผ์ ์ด๋ป๊ฒ ๋์ํ๋์ง์ ๋ํด ์ค๋ช ํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ ์ฉ๋๋ก ์ ์ฉํฉ๋๋ค.
- ์์ฑ๋ ํ๋ก์ ํธ์์ ์ ํ๋ก์ ํธ๋ก ์์ ์ ๋ณต์ฌํ๋ ค ํ ๊ฒฝ์ฐ. ์ด์ ๊ฒ์์ ์ํธ์ ์ ์ํ ๊ฒฝ์ฐ ์ฝ๊ฒ ์์ ์ ์ป์ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ์ ๋ณต์ฌํ ์ ์๋ ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํด์ ์ปค์คํฐ๋ง์ด์ง ํ๊ฑฐ๋ ์คํ์ ๋ผ์ด์ง ํ ๊ฒฝ์ฐ
- ์ง์ ์ฐธ์กฐํ ์ ์๋ ์์ฑ๋ ์ค๋ธ์ ํธ๋ ์คํฌ๋ฆฝํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ. ์ด ๋ฐฉ๋ฒ์ ์ ๋๋ฉ์ด์ ์ด๋ ์ฌ์ด๋ ์์ , ๊ทธ๋ํฝ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ฑฐ๋ ๊ณตํต ์คํฌ๋ฆฝํธ ๋ชจ๋์ ์ ์ฅํ๋๋ฐ ์ ์ฉํฉ๋๋ค.
Setting up library sharing
์๋ฅผ ๋ค์ด ๊ณต์ ๋ ์คํ๋ผ์ดํธ์ ํ์ผ ์์ค๋ฅผ ํฌํจํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๋ ค ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ๋น์ ์ Defold ๋์ฌ๋ณด๋(์์ธํ ๋ด์ฉ์ Workflow ๋ฌธ์ ์ฐธ๊ณ )์์ ์ ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ํ๋ก์ ํธ์์ ๊ณต์ ํ๋ ค๋ ํด๋๋ฅผ ๊ฒฐ์ ํ๊ณ ํ๋ก์ ํธ ์ ํ ์์ "include_dirs" ํ๋กํผํฐ์ ์ด ํด๋๋ค์ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ํด๋๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๊ณต๋ฐฑ(space)๋ก ์ด๋ฆ์ ๊ตฌ๋ถํ๋ฉด ๋ฉ๋๋ค.

Defold ์๋ฒ๋ ํ๋ก์ ํธ๊ฐ ๊ณต์ ๋๋ ํด๋๋ฅผ ํฌํจํ๊ณ ์๋ค๋๊ฑธ ์์์ผ ํ๋ฏ๋ก ํ๋ก์ ํธ๋ฅผ Synchronize ํด์ผ ํฉ๋๋ค. ์ด์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ธฐ ์ ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์น๋ถํฐ ์์์ผ ํฉ๋๋ค.
Library URL
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ค URL์ ํตํด ์ฐธ์กฐ๋ฉ๋๋ค. ๊ฐ ํ๋ก์ ํธ๋ Dashboard์์ ์ฐพ์ ์ ์๋ Library URL์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ด๋ จ ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ณ URL์ ๋ณต์ฌ๊ฑฐ๋ ์ ์ด๋๊ธฐ ๋ฐ๋๋๋ค.

Setting up library dependencies
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ธ์ค ํ๋ ค๋ ํ๋ก์ ํธ๋ฅผ ์ฝ๋๋ค. Project settings์์ "dependencies" ํ๋กํผํฐ์ ์๊น ๋ณต์ฌํ URL์ ์ถ๊ฐํฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ์ฌ๋ฌ ์ข ์ ํ๋ก์ ํธ๋ฅผ ์ง์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฅ ๊ณต๋ฐฑ(space)์ผ๋ก ๊ตฌ๋ถํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.

์ด์ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข ์์ฑ์ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด Project > Fetch Libraries ๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ ํ๋ก์ ํธ๋ฅผ ์ด ๋๋ง๋ค ์๋์ผ๋ก ๋ฐ์ํ๋ฏ๋ก ํ๋ก์ ํธ๋ฅผ ๋ค์ ์ด ํ์ ์์ด ์ข ์์ฑ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์ ์ด ์์ ์ด ์ํ ๋ฉ๋๋ค. ์ข ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐ/์ญ์ ํ๊ฑฐ๋ ์ข ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๊ฐ ๋๊ตฐ๊ฐ์ ์ํด ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋๊ธฐํ ๋๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ํฉ๋๋ค.

์ด์ Project Explorer์ ๊ณต์ ๋ ํด๋๊ฐ ํ์๋๊ณ ๊ณต์ ๋ ๋ชจ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ์ฌํญ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์ ํธ์ ๋๊ธฐํ ํ๋ฉด ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.

Troubleshooting
Broken references
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณต์ ๋ ๊ณต์ ๋ ํด๋์ ์์นํ ํ์ผ๋ค๋ง ํฌํจํฉ๋๋ค. ๋ง์ฝ ๊ณต์ ๊ณ์ธต๊ตฌ์กฐ๊ฐ ์๋ ์์น์ ์์ ์ฐธ์กฐ๋ฅผ ์์ฑํ๋ฉด ์ฐธ์กฐ ๊ฒฝ๋ก๊ฐ ๊นจ์ง๊ฒ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, "shared_sprites" ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์๋ ์ํ๋ผ์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ํ๋ผ์ค์๋ PNG ์ด๋ฏธ์ง๋ค์ด ๋ชจ์ฌ์ ธ ์์ง๋ง ์ค์ ๋ก ์ด ์ด๋ฏธ์ง๋ค์ ๊ณต์ ๋์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์ ํธ์ ํด๋์ ์์ต๋๋ค.

Text Editor(๊ธฐ๋ณธ Atlas Editor ๋ง๊ณ )๋ก ์ํ๋ผ์ค๋ฅผ ์ด์ด๋ณด๋ฉด ์์ง๋ ์ด๋ฏธ์ง๋ค์ ๊ฒฝ๋ก๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
images {
image: "/cards_example/images/clubmaster.png"
}
images {
image: "/cards_example/images/heartson.png"
}
images {
image: "/cards_example/images/tree.png"
}
images {
image: "/cards_example/images/pot.png"
}
images {
image: "/cards_example/images/heart.png"
}
์ด์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๋ช ํํด ์ก์ต๋๋ค. ์ํ๋ผ์ค ํ์ผ์ ๋ก์ปฌ ํ๋ก์ ํธ์ ์กด์ฌํ์ง ์๋ ๊ฒฝ๋ก๋ก PNG ์ด๋ฏธ์ง๋ค์ ์ฐธ์กฐํ๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ "/cards_example/images" ํด๋ ๊ฒฝ๋ก๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์ ํธ์ shared folders ๋ชฉ๋ก์ ์ถ๊ฐํด์ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ "/cards_example/images" ํด๋๋ฅผ ๋ก์ปฌ์ ์์ฑํ๊ณ PNG ํ์ผ๋ค์ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
Name collisions
"dependencies" Project setting ์์ ์ฌ๋ฌ ํ๋ก์ ํธ์ URL์ ๋์ดํ ์ ์์ผ๋ฏ๋ก ์ด๋ฆ ์ถฉ๋์ด ๋ฐ์ํ ์๋ ์์ต๋๋ค. ์ด๋ "include_dirs" Project setting์์ ๋์ผํ ์ด๋ฆ์ผ๋ก ์ข ์ ํ๋ก์ ํธ ๊ณต์ ํด๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.
Defold๋ "dependencies" ๋ชฉ๋ก์ ์ง์ ๋ ํ๋ก์ ํธ URL ์์์์ ๋์ผํ ์ด๋ฆ ์ค์ ๋ง์ง๋ง ๊ฒฝ๋ก๋ฅผ ์ ์ธํ ๋ชจ๋ ์ฐธ์กฐ๋ฅผ ๋ฌด์ํจ์ผ๋ก์ ์ด๋ฆ ์ถฉ๋์ ํด๊ฒฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด dependencies์ 3๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ URL์ด ์๋๋ฐ ์ ๋ถ ํด๋๋ช ์ด "items"๋ผ๋ฉด, ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋ "item" ํด๋๋ง์ด ํ์๋ฉ๋๋ค.