์ ๋ํฐ์์ Instantiate์ ์์
Instantiate
Awake
OnEnable
Instantiate ์ดํ์ ์คํํ ํจ์
ex) tempObject = Instantiate(์ด์ฉ๊ตฌ~) // tempObject.ํจ์
๋ง์ง๋ง์ด Start
๊ทธ๋ฐ๋ฐ ๋ง์ฝ, Position์ ์ง์ ํ๊ณ Parent๊น์ง ์ง์ ํ๋ค๋ฉด? ex) Instantiate(์์ฑํ ์ค๋ธ์ ํธ, Position, Rotation, Parent)
Instantiate
Awake
OnEnable
Instantiate ์ดํ์ ์คํํ ํจ์
--์ฌ๊ธฐ์ Parent๊ฐ ์ง์ ๋๋ค == Position์ด ๋ฐ๋--
Start
๋ณ๋๋ก SetParent๋ฅผ ํ๋ฉด ์ด๋จ๊น?
์๋ฅผ ๋ค์ด
tempObject = Instantiate(์์ฑํ ์ค๋ธ์ ํธ, Position, Rotation)
tempObject.transform.SetParent(Parent)
tempObject.๋ฉ์๋
๋ผ๊ณ ์ฝ๋๋ฅผ ์งฐ๋ค๋ฉด?
ํ์ธ์ ์ํด, ์ '๋ฉ์๋'๊ฐ tempObject์ World Position์ ์ถ๋ ฅํ๋ ํจ์๋ผ๊ณ ์๊ฐํด๋ณด์.
SetParent๋ฅผ ํ ํ์ ๋ฉ์๋๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ Position์ด ๋์ฌ๊น?
๋ชจ๋ ๋์๋ง๋ค Debug๋ก ์์น๋ฅผ ์ฐ์ด๋ณด๋ฉด ๋๋๊ฒ๋ ๊ทธ๋ ์ง ์๋ค.
๋์ผํ๊ฒ ์ถ๋ ฅ๋๋ค.
Instantiate
Awake
OnEnable
SetParent
tempObject.๋ฉ์๋ == Parent์ Position๊ณผ ๋ฌด๊ดํ๊ฒ World Position
-- Parent์ Position ๋ฐ์ --
Start : Parent์ ์์น๊ฐ ๋ฐ์๋ Position
๊ฒฐ๊ตญ ์ด๋ป๊ฒ ํ๋๋ผ๋ Parent์ ์์น ๋ฐ์์ Start ์์ ์ด๋ ๋ป
์ด ์ก์ง์์ด ์ธ์ ์ฐ์ด๋?
๋๋ Awake๋ฅผ ์ด๊ธฐํ์ฉ์ผ๋ก ์์ฃผ ์ฌ์ฉํ๋ค.
๋ง์ฝ, ๋ด๋ถ ๋ณ์๋ฅผ ํ์ฌ ์ค๋ธ์ ํธ์ Position์ผ๋ก ์ด๊ธฐํํ๊ธฐ ์ํด Awake์์ ์ด๊ธฐํ๋ฅผ ํ๋ค๊ณ ํ์.
์ ๋ง๋๋ก๋ผ๋ฉด Awake์์ ํ ์ด๊ธฐํ Position๊ณผ Start ์ดํ์ Position์ด ๋ค๋ฅด๊ฒ ๋๋ค.
Position์ ์ธํ ํ๋ ๋ด๋ถ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค ํด๋ ์ ์์ ์์์ ๋ฐ๋ผ์ ๊ฒฐ๊ตญ Start๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์์ค๋ Position์ด ๋ค๋ฅด๋ค.
๋ถ๋ช ์ ๋๋ก Position์ ์ก๊ณ ์์ฑํ ๊ฒ ๊ฐ์๋ฐ ์ด์ํ ๊ณณ์ ์์ฑ๋๋ค? ์ด ๋ถ๋ถ์์ ๋ฌธ์ ์๊ธธ ํ๋ฅ ๋์
๋๋ ๋ด ๋ฒ๊ทธ์๊ฑฐ๋ ใ
๋ ๊ทผ๋ฐ ์ธ์คํด์์์ดํธ๊ฐ setparent ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋๋ฐ ์ ์์์ด ์ ๋ผ? ํนํ ์บ๋ฒ์ค ํ์์์๋ฉด ๋ถ๋ชจ ์ง์ ํ ์๊ฐ ์ค์ผ์ผ ์ญ์ฐฝ๋์ ๋๋ ์ ๋ฐ ๋์์ธ์ผ ๊ฒฝ์ฐ์ ๋ฌด์กฐ๊ฑด ์ธ์คํด์์์ดํธ ํ๋ผ๋ฏธํฐ๋ก ๋ถ๋ชจ ์ง์ ํ๋๋ฐ
๊ทธ๊ฑธ ๋ชจ๋ฅด๊ฒ ์. ๊ฒ์ํด๋ด๋ ๋ฌ๋ฆฌ ์ ๋ณด๊ฐ ์์
Instantiate์ ํฌ์ง์ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ๊ฒ ๋์ด์๋๋ฐ ๊ถ์ด setparent๋ฅผ ์จ์ ํฌ์ง์ ์ ์ ํด์ผ ํ๋ ๊ฑธ๊น?