๐ŸŽฎ Unity6 - ์ด๋ฒคํŠธ ์ˆœ์„œ

VIN'Spellsยท2025๋…„ 11์›” 17์ผ

์œ ๋‹ˆํ‹ฐ6

๋ชฉ๋ก ๋ณด๊ธฐ
9/12
post-thumbnail

๐Ÿ“Œ ๋ณธ ํฌ์ŠคํŒ…์€ Unity ๊ณต์‹ ๋งค๋‰ด์–ผ์˜ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”ฎ์ด๋ฒคํŠธ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ˆœ์„œ

๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” ํ˜ธ์ถœ์ˆœ์„œ ํ”Œ๋กœ์šฐ ์ฐจํŠธ
๊นŠ์€ ๊ตฌํ˜„๊ณผ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด์„  ๋ชจ๋‘ ์•Œ์•„์•ผ๊ฒ ์ง€๋งŒ ๋ณธ ํฌ์ŠคํŒ…์—์„  ํฌ๊ฒŒ 4๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋“ค๋งŒ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.


๐Ÿ”ฎ์‹œ์ž‘ (Initialization)

๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ํ™œ์„ฑํ™”๋  ๋•Œ ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋˜์–ด ์ดˆ๊ธฐ ์„ค์ •์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ Awake() -> OnEnable() -> Start() ์ˆœ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

Awake()

  • ๊ฐ€์žฅ ๋จผ์ € ์‹œ์ž‘๋˜๋Š” ํ•จ์ˆ˜
  • ์ธ์Šคํ„ด์Šค๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ํ˜ธ์ถœ
  • ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰

๊ณต์‹๋ฌธ์„œ์— ๋ณด๋ฉด

์ด๋ ‡๊ฒŒ ๋‚˜์™€์žˆ๋Š”๋ฐ
์˜ค๋ธŒ์ ํŠธ ์ž์ฒด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ๊ฒฝ์šฐ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๊ทธ์ฐฝ์— ์•„๋ฌด๊ฒƒ๋„ ๋œจ์ง€ ์•Š์ง€๋งŒ

์˜ค๋ธŒ์ ํŠธ๋Š” ํ™œ์„ฑํ™”ํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ๋งŒ ๋น„ํ™œ์„ฑํ™” ํ•  ๊ฒฝ์šฐ๋Š”

์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Awakeํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

OnEnable()

  • Awake() ์ดํ›„ ํ˜ธ์ถœ
  • ์˜ค๋ธŒ์ ํŠธ ํ™œ์„ฑํ™” ์งํ›„ ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ
  • ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ

์ฆ‰ Awake()ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ดํ›„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ™œ์„ฑํ™” ๋ ๋•Œ๋งˆ๋‹ค ํ™œ์„ฑํ™” ์งํ›„ ํ˜ธ์ถœ๋œ๋‹ค.

Awakeํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”์ผ๋•Œ ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ  ์˜ค๋ธŒ์ ํŠธ ํ˜น์€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ™œ์„ฑํ™” ๋ ๋•Œ๋งˆ๋‹ค ์ค‘๋ณต ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Start()

  • ์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„ ์—…๋ฐ์ดํŠธ ์ „์— ํ˜ธ์ถœ
  • ํ•œ๋ฒˆ๋งŒ ํ˜ธ์ถœ

์ฆ‰ ์ฒซ ๋ฒˆ์งธ Update() ํ˜ธ์ถœ ์ง์ „์— ๋‹จ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•œ๋‹ค.

์—ญ์‹œ ์Šคํฌ๋ฆฝํŠธ์™€ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”์ผ๋•Œ๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ 
๋น„ํ™œ์„ฑํ™”->ํ™œ์„ฑํ™”์‹œ updateํ˜ธ์ถœ ์ „ ํ˜ธ์ถœ๋œ๋‹ค.

๊ณต์‹๋ฌธ์„œ ์„ค๋ช…์—

์ด๋Ÿฌํ•œ ๋‚ด์šฉ์ด ๋‹ด๊ฒจ์žˆ๋Š”๋ฐ ์ง๊ด€์ ์œผ๋กœ ๋ดค์„๋•
"์•„ ์‹คํ–‰ ์ค‘๊ฐ„์— ์ƒ์„ฑ๋œ ๊ฒƒ์€ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๊ตฌ๋‚˜!"๋กœ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ์ง€๋งŒ
์‚ฌ์‹ค์€ ์ธ์Šคํ„ด์Šคํ™” ๋˜๋Š” ๊ทธ ์‹œ์ ์—์„œ๋Š” ์‹คํ–‰์ด ์•ˆ๋˜๊ณ  ๋‹ค์Œ Update์ด์ „์— ์‹คํ–‰๋œ๋‹ค.
(๋ฒˆ์—ญ์˜ ๋ชจํ˜ธํ•จ? ๋•Œ๋ฌธ์ธ๋“ฏ)


๐Ÿ”ฎ์—…๋ฐ์ดํŠธ(Update)

๊ฒŒ์ž„์˜ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ”„๋ ˆ์ž„ ๋‹จ์œ„์˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.
FixedUpdate() -> (ํŠธ๋ฆฌ๊ฑฐ๋‚˜ ์ฝœ๋ผ์ด์ฆŒ ๋“ฑ ๋ฌผ๋ฆฌํ•จ์ˆ˜ ์ ์šฉ) -> Update()
-> (๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋ฃจํ‹ด ํ•จ์ˆ˜๋“ค ์‹คํ–‰) -> LateUpdate()์ˆœ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

FixedUpdate()

  • ์ผ์ •ํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ํ˜ธ์ถœ
  • ๋ฌผ๋ฆฌ ๊ณ„์‚ฐ ๋ฐ ์—…๋ฐ์ดํŠธ๋Š” FixedUpdate ํ›„ ์ฆ‰์‹œ ๋ฐœ์ƒ

ํ”„๋ ˆ์ž„๋‹น ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ผ์ •์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ํ˜ธ์ถœ๋จ์œผ๋กœ ํ•œ ํ”„๋ ˆ์ž„์—์„œ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœ๋ ์ˆ˜๋„ ํ•œํ”„๋ ˆ์ž„์—์„œ ํ˜ธ์ถœ์ด ์•ˆ๋ ์ˆ˜๋„ ์žˆ๋‹ค. (ํ”„๋ ˆ์ž„ ์†๋„์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)

์ฃผ๋กœ ๋ฌผ๋ฆฌ์—”์ง„๊ด€๋ จ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋ฉฐ ๋‚ด๋ถ€ ํƒ€์ด๋จธ์— ์˜ํ•ด ๋™์ž‘ํ•˜๋ฏ€๋กœ ์›€์ง์ž„ ๊ณ„์‚ฐ์„ ์ ์šฉํ•  ๋•Œ Time.deltaTime ๋งŒํผ ๊ฐ’์„ ๊ณฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

Update()

  • ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ
  • ๋Œ€๋ถ€๋ถ„์˜ ๊ฒŒ์ž„ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

์ž˜ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ, ์ด๋™, ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ์–ด ๋“ฑ์— ์‚ฌ์šฉ๋œ๋‹ค.

LateUpdate()

  • Update ๊ฐ€ ๋๋‚œ ํ›„ ํ”„๋ ˆ์ž„๋‹น ํ•œ ๋ฒˆ ํ˜ธ์ถœ
  • Update ์—์„œ ์ˆ˜ํ–‰๋œ ๋ชจ๋“  ๊ณ„์‚ฐ์€ LateUpdate ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ์™„๋ฃŒ

๋”ฐ๋ผ์„œ Update() ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
(ex.์บ๋ฆญํ„ฐ ์ด๋™์„ ๋”ฐ๋ผ๊ฐ€๋Š” ์นด๋ฉ”๋ผ ๊ตฌํ˜„)


๐Ÿ”ฎ์ข…๋ฃŒ (Termination)

๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”,ํŒŒ๊ดด๋  ๋•Œ ํ˜น์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
OnApplicationQuit() ->ย OnDisable() ->ย OnDestroy()์ˆœ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

OnApplication()

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์ „ ๋ชจ๋“  ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ์—์„œ ํ˜ธ์ถœ

์ž‘๋™ ์›๋ฆฌ๋งŒ ๋ด๋„ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ๋ฐ ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ๋งŒ๋“  ๊ฒƒ ๊ฐ™๋‹ค.

OnDisable()

  • ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ
  • ํŒŒ๊ดด๋  ๋•Œ์—๋„ ํ˜ธ์ถœ

๋‹น์—ฐํ•˜๊ฒŒ๋„ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๋กœ ์‹œ์ž‘ํ• ๋•Œ๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ  ํ™œ์„ฑํ™”์—์„œ ๋น„ํ™œ์„ฑํ™” ๋ ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค. ์˜ค๋ธŒ์ ํŠธ ๋ฟ ์•„๋‹ˆ๋ผ ์Šคํฌ๋ฆฝํŠธ ๋น„ํ™œ์„ฑํ™”์‹œ๋„ ํ˜ธ์ถœ๋œ๋‹ค.

OnDestroy()

  • ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํŒŒ๊ดด๋  ๋•Œ ํ˜ธ์ถœ
  • ์”ฌ์ด ์ข…๋ฃŒ๋  ๋•Œ ํ˜ธ์ถœ

์”ฌ์˜ ์ข…๋ฃŒ๋Š” ์˜ค๋ธŒ์ ํŠธ์˜ ํŒŒ๊ดด์ด๊ธฐ ๋•Œ๋ฌธ์— ์”ฌ ์ข…๋ฃŒ์‹œ์—๋„ ํ˜ธ์ถœํ•œ๋‹ค.
์˜ค๋ธŒ์ ํŠธ ํ’€๋ง์ผ๋•Œ ํ˜ธ์ถœํ•ด์•ผํ•˜๋Š” ์ข…๋ฃŒํ•จ์ˆ˜๋Š” OnDisable()๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์™„์ „ํžˆ ์ •๋ฆฌํ•ด์•ผํ•  ๋•Œ OnDestroy()์‚ฌ์šฉํ•œ๋‹ค.
(๋ฌผ๋ก  ๋‘˜์˜ ์—ญํ• ์ด ๊ฐ™์„์‹œ์—๋Š” OnDisable()๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๊ด€)

0๊ฐœ์˜ ๋Œ“๊ธ€