๋ ˆ์ด์ € ํŠธ๋žฉ ๊ตฌํ˜„


1) ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ์— ์ฝœ๋ผ์ด๋”๋ฅผ ๋‹ฌ์•„์„œ ์บ๋ฆญํ„ฐ์™€ ์ถฉ๋Œ ์ด๋ฒคํŠธ๋Š” ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ์˜ ์ฝœ๋ผ์ด๋”๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋ผ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋šซ๊ณ  ์ง€๋‚˜๊ฐ. ๊ฒŒ์ž„์—์„œ ํ”ํžˆ ๋ดค๋˜ ๋ ˆ์ด์ €๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ์— ์‹คํŒจ(์•„๋งˆ ๋ฐฉ๋ฒ•์ด ์žˆ๊ธด ํ• ํ…๋ฐ ์œ ๋‹ˆํ‹ฐ ์‹œ์ž‘ํ•œ์ง€ ์–ผ๋งˆ ์•ˆ๋ผ์„œ ์ž˜ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํŒจ์Šค)


2) ๊ตฌ๊ธ€๋งํ•ด์„œ ๋ผ์ธ ๋ Œ๋”๋Ÿฌ์™€ ๋ ˆ์ด์บ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋ ˆ์ด์ €์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์Œ. ๋ผ์ธ ๋ Œ๋”๋Ÿฌ์— ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ๋‹ฌ๊ณ  FixedUpdate ์•ˆ์—์„œ ๋ ˆ์ด๋ฅผ ์ด์„œ ์ฝœ๋ผ์ด๋”๊ฐ€ ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋ผ์ธ ๋ Œ๋”๋Ÿฌ์˜ ๋(1)์œผ๋กœ ์„ค์ •.



์˜จ์˜คํ”„ ์Šค์œ„์น˜ ๊ตฌํ˜„


์ผ์ • ๋ฒ”์œ„ ๋‚ด์— ์บ๋ฆญํ„ฐ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด "Press 'E' Button"๋ผ๋Š” ํ…์ŠคํŠธ ๋ฉ”์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  Eํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ํƒ€๊ฒŸ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ SetActive(false) ๋˜๋ฉด์„œ ๋ฐฉํ•ด์—†์ด ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

์ด๊ฑด ๋‚ด ์ƒ๊ฐ๋ณด๋‹ค ๋„ˆ๋ฌด ๊ฐ„๋‹จํ–ˆ์Œ. Sphere ์ฝœ๋ผ์ด๋”๋ฅผ ์ข€ ํฌ๊ฒŒ ํ•ด์ฃผ๊ณ  Tag๊ฐ€ Player์ธ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ Enter, Exit๋˜๋ฉด isPlayerEnter๋ผ๋Š” boolean ๊ฐ’์„ ์กฐ์ •ํ•ด์ฃผ๋ฉด์„œ Update๋ฌธ์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋‹ˆ๊นŒ ํ•œ๋ฒˆ์— ๋์Œ



์›€์ง์ด๋Š” ๋ถˆ๋˜ฅ ๊ตฌํ˜„


์Šˆํผ๋งˆ๋ฆฌ์˜ค ์ฟ ํŒŒ ๋งต์ด์—ˆ๋‚˜ ์šฉ์•”์—์„œ ํŠ€์–ด๋‚˜์˜ค๋ฉด์„œ ์œ„์•„๋ž˜๋กœ ์›€์ง์ด๋Š” ๋ถˆ๋˜ฅ

1) ์ฝ”๋ฃจํ‹ด์„ ๋ฌดํ•œ๋ฐ˜๋ณตํ•ด์ฃผ๋ฉด์„œ 3์ดˆ๋งˆ๋‹ค addForce ํ•ด์ฃผ๋ฉด ์œ„๋กœ ํ ํŠ€์–ด์˜ฌ๋ž๋‹ค๊ฐ€ ์ค‘๋ ฅ์œผ๋กœ ์ธํ•ด ๋–จ์–ด์งˆ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋ญ”๊ฐ€ ์ข€ ์ด์ƒํ•˜๊ฒŒ ์›€์ง์ž„. ์œ„์—์„œ ๋ฉˆ์ถฐ์žˆ๋‹ค๊ฐ€ ๋–จ์–ด์งˆ ๋•Œ๋„ ์žˆ๊ณ  ๋–จ์–ด์ง€๋Š” ๋„์ค‘์— ๋‹ค์‹œ ํŠˆ ๋•Œ๋„ ์žˆ๊ณ  ์•ˆ ๋–จ์–ด์ง€๊ณ  ๋˜ ํŠ€์–ด์˜ค๋ฅผ ๋•Œ๋„ ์žˆ์—ˆ์Œ. ์›์ธ์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ.


2) ์ฝ”๋ฃจํ‹ด์—์„œ๋Š” boolean๊ฐ’๋งŒ duration๋งˆ๋‹ค ์กฐ์ •ํ•ด์ฃผ๊ณ  FixedUpdate๋ฌธ์—์„œ ํ•ด๋‹น boolean๊ฐ’์ด true์ผ ๋•Œ ์œ„๋กœ AddForce ํ•ด์คฌ๋Š”๋ฐ ๋ญ”๊ฐ€ ์œ„์•„๋ž˜๋กœ ์›€์ง์ด๊ธด ํ•˜๋Š”๋ฐ ์ฃผ๊ธฐ๋„ ์ผ์ •ํ•˜์ง€ ์•Š์•˜๊ณ  ๊ฑฐ๋ฆฌ๋„ ์ผ์ •ํ•˜์ง€ ์•Š์•˜์Œ.


3) ๊ตฌ๊ธ€๋ง ํ•˜๋‹ค๋ณด๋‹ˆ Physics Material์„ ๋ฐœ๊ฒฌํ•ด์„œ Bouncess๋ฅผ 1, bounce combine์„ maximum์œผ๋กœ ํ•ด์ค˜์„œ ํƒฑํƒฑ๋ณผ๋งˆ๋ƒฅ ์œ„์•„๋ž˜๋กœ ํŠ€๊ฒŒ ํ•ด์ฃผ๋ฉด ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜์Œ. ๊ฒฐ๊ณผ๋Š” ์ž˜ ํŠ€๊ธด ํ•˜๋Š”๋ฐ ํŠˆ ๋•Œ๋งˆ๋‹ค ์ ์  ๋” ๋†’์ด ์˜ฌ๋ผ๊ฐ. ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์Œ.


4) ๊ฒฐ๊ตญ ๋ฆฌ์ง€๋“œ๋ฐ”๋”” ์—†์• ๊ณ  ๊ทธ๋ƒฅ FixedUpdate ๋ฌธ์—์„œ sqrMagnitude๋กœ ํƒ€๊ฒŸ ๋ฒกํ„ฐ์™€ ํ˜„์žฌ ๋ฒกํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋ฉด์„œ ํƒ€๊ฒŸ ๋ฒกํ„ฐ๋ฅผ ์œ„์•„๋ž˜๋กœ ์˜ฎ๊ฒจ์ฃผ๋ฉด์„œ transform.position = Vector3.Lerpํ•ด์คฌ์Œ. ๋ฌผ๋ฆฌ ํšจ๊ณผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜๋Š”๋ฐ ์•ˆ๋ผ์„œ ๋„ˆ๋ฌด ์•„์‰ฌ์›€.




๋ถ„๋ช… ์‹œ๊ฐ„์€ ๋งŽ์ด ์Ÿ์•˜๋Š”๋ฐ ์ง„ํ–‰ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋А๋ฆฐ ๊ฒƒ ๊ฐ™์Œ. ๊ฒŒ์ž„ ๋กœ์ง์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณต๋ถ€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ๋А๋‚Œ.