์ ๋ํฐ, ํด๋์ค(์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ)์์ ๋ค๋ฅธ ํด๋์ค์ ํจ์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์๊ณ ์์.
1. ์ง๋ ฌํ[SerializedField]๋ฅผ ํตํด ํ์ํย ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ๋ฅผ ์ธ์คํํฐ ์ฐฝ์์ ์ฐ๊ฒฐ ์์ผ ์ฃผ๋ ๋ฐฉ๋ฒ.
2. GameObject.Find() ํจ์๋ฅผ ํตํด ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ์ฐพ๊ณ , GetComponent<>() ํจ์๋ฅผ ํตํด ํ์ํ ์คํฌ๋ฆฝํธย ์ปดํฌ๋ํธ๋ฅผ ์ฐ๊ฒฐ ์์ผ ์ฃผ๋ย ๋ฐฉ๋ฒ.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๊ถ๊ธ์ฆ์, ํ๋ก์ ํธ ํด๋๋ด์ ์์ฑ๋์ด ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ๋ฌ์์ ์ธ ์ ์๋ ๋ฐฉ๋ฒ์ ์์?
์คํฌ๋ฆฝํธ๋ฅผ ๋ถ๋ฌ์์ ์ด๋ค๋ ๊ฒ ๋ญ ์๋ฆฐ์ง... ๋ชจ๋ ธ๋นํค์ด๋น์ด๋ฅผ ์์๋ฐ๋ ํด๋์ค๋ผ๋ฉด ๊ธ์ ์ ์ ๋๋ก ํ๋ฉด ๋๊ณ
์ค๋ธ์ ํธ๋ฅผ ์ ๋ง๋ค๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๊ณ ์ถ๋ค๋ ๊ฑฐ๋ฉด static ํด๋์ค๋ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ ์ฐ๋ฉด ๋๊ฒ ์ง
์์๋ก ํ๋ก์ ํธ ์ฐฝ์ ์์ ํด๋๋ด์๋ Example01, Example02 ์คํฌ๋ฆฝํธ๊ฐ ์กด์ฌํ๋ค๊ณ ํจ. Example01 ํด๋์ค ์์ฑ์ค Example02์ ํจ์๋ ๋ณ์๊ฐ ํ์ํ ์ผ์ด ์๊ฒผ๊ณ ,
์ ์ธ๊ธํ ๋ฐฉ๋ฒ๋์ ์ฌ์ฉํ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์? ๊ทผ๋ฐ ์์ฑ์ค ๋ต๋ณ์ด ๋ฌ๋ ค์ ์์๋ณด๊ณ ์ด
Scriptable Object ๊ฒ์
์ฑ๊ธํคํจํด๊ฐ์ด static๊ฐ์ฒด ์ด์ฉํด์ ํ๋ก์ ํธ ํด๋๊ฐ ์๋๋ผ ๊ฒ์ ์ ์ฒด์ ์ผ๋ก ๊ฐ์ ์ ์ฅํด๋๋ ๋ฐฉ๋ฒ๋ ์๊ณ ์๋๋ฉด ๊ทธ๋ฅ ๋ชจ๋ ธํด๋์ค ๋ง๋ค๊ณ empty object์ ํด๋์ค ๋ฌ๊ณ Resource ํด๋์ ์ง์ด๋ฃ์ด์ ํ๋ฆฌํนํ ์์ผ๋๊ณ ํ์ํ ๋ Resource.Load๋ก ๋ถ๋ฌ๋ ๋๊ณ
๋ชจ๋ ธ ํด๋์ค๋ ์ค๋ธ์ ํธ์ ๋ถ์ฐฉํ๋ ํํ๋ก ๊ฐ๋ฅ ์ผ๋ฐ ํด๋์ค๋ new
์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ ์ฌ์ฉํ์ญ์ผ
๋ฉ ์ํ๋์ง ์ ํํ๋ ๋ชจ๋ฅด๊ฒ ๋ค ๋ฆฌํ๋ ์ ์ด์ฉํด์ ํด๋์ค ์ด๋ฆ ์ด์ ๋ธ๋ฆฌ๋ก ๊ฐ์ ธ์์ ์ฌ์ฉํ ์์๊ธดํจ ์ฑ๋ฅ์ ์ด์๋ ์์ด๋
์ฑ๊ธํค ์คํํฑ has-a