์๋ ํ์ธ์ฌ ์์ ์ด๋ณด์ ๋ํฐ ๋ ์ ๋๋ค..
์ค์๊ฐ์ผ๋ก ์์ฑํ ๋ฌผ์ฒด๋ฅผ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋ค ๊ฐ๋ค ํ๋ฉด์ ๋ฐ๊พธ๊ณ ์ถ์๋ฐ (position, rotation ์ ๋ณด๋ ๋ฐ์ผ๋ฉด์)
์ด๊ฒ Instantiate ๋ destroy๋ฅผ ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ์จ์ฃผ๋๊น ์ค๊ฐ์ 1)position/rotation ์ ๋ณด๊ฐ ๋ ์๊ฐ๊ธฐ๋ ํ๊ณ 2)์ค๊ฐ ์ค๊ฐ ํ๋ฉด์ด ๋น๋ ํ์
์ด ์ผ์ด๋์ ํน์ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ ์ฌ์ญ์ต๋๋ค.
์ฝ๋ ๋๋ต์ ์ผ๋ก ์์ฝํ๋ฉด ๋ค์์ฒ๋ผ ๋์์ด์
void Start(){
InvokeRepeating("Update", 1f, 1.0f);
}
public void Update(){
rot = obj.transform.rotation;
pos = obj.transform.position; //์ด๊ฑฐ ๋๊ฐ๋ก rot/pos ์ ๋ณด๋ฐ๊ณ
destroy(obj); //์ด๊ฑฐ๋ก instantiate ํ๊ฑฐ destroyํ๊ณ
์กฐ๊ฑด๋ฌธ
์จ์
obj = instantiate(pp, pos, rot); //pp๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ๋๋๋ก ์ค์
}
๋ค์์ฒ๋ผ ํ๋๋ฐ ํน์ instantiate/destroy ๋น์ฉ์ด ๋๋ฌด ๋น์ธ์ ๊ทธ๋ฐ ๊ฑฐ๋ฉด ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ ์ด์์๊น์, ํ๋ฌผ์ฒด์ ์์ฑ์ด ๋ณํ๋๊ฒ ์๋๋ผ ๋ค๋ฅธ ๋ฌผ์ฒด๋ฅผ ๊ฐ์ position/rotation์ ๋ฃ๋ ๊ฑฐ๊ณ ์ด obj๊ฐ ๊ต์ฅํ ๋ฌด๊ฑฐ์ด ๋ฐ์ดํฐ์ ๋๋ค!
InvokeRepeating("Update", 1f, 1.0f); <--------------- ๋ง์์ด๊ฑฐ?
์ฌ์ค void Update{} ์์ ๋ง๋ค์ด๋์ ํจ์๋ฅผ ์๋์ํฌ๋ผ๊ณ ํ๋๋ฐ ์ด๊ฒ ๋น์ฉ์ด ๋๋ฌด ์ปค์ FPS๊ฐ ๋๋ฌด ๋จ์ด์ ธ์ ์๊ฐ๊ฐ๊ฒฉ ์ฃผ๋ ค๊ณ ์ ๋ ๊ฒ ๋ง๋ค์์ด์ ใ ใ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค์
์ง๋ฌธ ๋ค์์จ๋ด. xy problem์. "์ค์๊ฐ์ผ๋ก ์์ฑํ ๋ฌผ์ฒด๋ฅผ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋ค ๊ฐ๋ค ํ๋ฉด์ ๋ฐ๊พธ๊ณ ์ถ์๋ฐ (position, rotation ์ ๋ณด๋ ๋ฐ์ผ๋ฉด์)" ๋ผ๊ณ ํ์ง๋ง๊ณ ์ ๋๋ก ์๋ ํ๊ณ ์ถ๋ ์ผ๋ง ์ ์ด๋ณด์
๋ฐ ๋ถ๋ถ์ ๋ค์ ์ค๋ช ํด๋์์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค!
๋ญํ๋ ค๋์ง ์๋ชฐ๋ผ๋ ๋์ถฉ ๋๋์ผ๋ก๋ dotween ์ฐ๋ฉด ๋ค ํด๊ฒฐ๋ ๋ฌธ์ ๊ฐ์๋ณด์
๋ต ํ๋ฒ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค!
์ ๋ํฐ ๋ผ์ดํ์ฌ์ดํด๋ ๊ณต๋ถํ์ . ๊ฐ ํผ์งํผ์งํ ํจ์๋ค์ด ์ ํํ ์ธ์ ๋ฌด์จ์ฉ๋ ๋ฌด์จ์ญํ ์ ๋ด๋นํ๋์ง
์ ๋ต ๊ฐ์ฌํด์! corutine๋ ๊ทธ๋ ๊ณ ์ด๋ ค์ด๊ฒ ๋ง๋ค์ ์ ๋ํฐ!
๊ธ๋ด์ฉ์ position / rotation์๋ํ ๋ด์ฉ์ด๊ณ ๊ธ์ ๋ชฉ์ ํฌ๋ช ๋์๋ํ๊ฑฐ๊ณ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ค๋ธ์ ํธ ํ๋ง๋ ์ฐพ์๋ดค๋๋ฐ ์์๋ก ์ด์์ฌ๋ฌ๊ฐ๋ฅผ 3๊ฐ์ ๋๋ก ํํํ ์ ์๋ค๊ณ ํ๋๋ฐ ์ ๋ ๋จ์ผ ๊ฐ์ฒด ์์ฑ์ด๋ผ ๋ณด์ง ์์์์ด์!
InvokeRepeating("_Update", 1f, 1.0f); ๋ก ์์ฑํ์ด์! ์ง๋ฌธ ์๋ค๊ฐ๋คํด์ ์ฃ์กํด์ ๋ค์ ๋งํด๋ณด๋ฉด ๋ฌผ์ฒด (a,b,c)๊ฐ ์๋๋ฐ a๋ฅผ ์ฒ์์ instantiate๋ก ๋ง๋ค๊ณ ์ดํ์ ์ด๋ค ์กฐ๊ฑด์ด ๋ง์กฑ๋๋ฉด a๋ฅผ destroyํ๊ณ b๋ฅผ instantiate ํ๋๋ฐ ์ด๋ b๊ฐ a์ position/rotation ์ ๋ณด๋ฅผ ๋ฐ๊ฒ ํ์ด์!
์ค๋ธ์ ํธ ํ๋ง๋ ์ฐพ์๋ดค๋๋ฐ ์์๋ก ์ด์์ฌ๋ฌ๊ฐ๋ฅผ 3๊ฐ์ ๋๋ก ํํํ ์ ์๋ค๊ณ ํ๋๋ฐ ์ ๋ ๋จ์ผ ๊ฐ์ฒด ์์ฑ์ด๋ผ ๋ณด์ง ์์์์ด์!
instantiate๋ก ์์ฑํ๊ณ destroy๋ก ์ญ์ ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ ์๋๋ผ gameobject.setactive()์์ true/false๋ก ๊ป๋ค ์ผฐ๋ค ํ๋ฉด ๋์์ ๊ทธ๊ฒ ์ค๋ธ์ ํธ ํ๋ง์ ๊ธฐ๋ณธ์
์ ๊ฐ์ฌํด์! ๊ทธ๋ฌ๋ฉด ๊ฑฐ๊ธฐ์ setactive(true/false)๋ก ๋ฐ๊ฟ์ค ๋, ํน์ ์ขํ ๊ฐ์ ๋ฃ์ด์ ์์ฑํด ์ค ์ ๋ ์์๊น์..? ๊ทธ
setactive(TRUE/FALSE)๋ก ๊ป๋ค ์ผฐ๋ค ํ๋ฉด ๋งจ์ฒ์ ์์ฑํ ๋๋ INSTANTIATE๋ก ํด์ค์ผ ํ๋๊ฒ ์๋๊ฐ ํด์์!
setActive(true)ํ๊ธฐ ์ง์ ์ transform.position = ์ขํ๊ฐ ์ด๋ ๊ฒ ํ๋ฉด ๋์ง
์ฒ์ ํ๋ฒ์ ์์ฑ์ ํด์ค์ผ ํ๋๊ฒ ๋น์ฐํ๋ฐ ๊ทธ ๋ค์๋ถํฐ๋ destroy๋ก ์ง์ฐ์ง ๋ง๊ณ ๊ทธ๋ฅ ์ค๋ธ์ ํธ๋ฅผ ๊ป๋ค ์ผฐ๋ค ํ๊ธฐ๋ง ํ๋ผ๋ ๊ฑฐ..
์ค ๊ทธ๋ฌ๋ฉด ๋ฌผ์ฒด (A,b,c)๊ฐ ์ฐจ๋ก๋๋ก ๋ฐ๋๋ ๊ตฌ์กฐ์ด๋ฉด A,B,C๋ ํ๋ฒ์ฉ INSTANTIATE ํด์ฃผ๊ณ ๊ทธ๋ด๋ถํฐ ๋ค ์ญ์ ํ ํ ํ์ํ ๋๋ง๋ค oNํ๋ฉด ๋๊ฒ ๋ค์ ํด๋ณด๊ฒ ์ต๋๋ค ๊ฐ์ฌํด์!