๐ Unity MonoBehaviour ์๋ช ์ฃผ๊ธฐ (Lifecycle) ์ ๋ฆฌ
Unity๋ MonoBehaviour ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ผ์ ํ ์์๋ก ํธ์ถํ๋ฉฐ, ๊ฒ์ ์ค๋ธ์ ํธ์ ์์ฑ๋ถํฐ ์ข ๋ฃ๊น์ง ๋ค์ํ ์ด๋ฒคํธ ํจ์๋ฅผ ์คํํ๋ค. ์๋๋ ๊ฐ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํ ์๋ช ์ฃผ๊ธฐ ํ๋ฆ์ด๋ค.
๐น 1. ์ด๊ธฐํ (Initialization)
์ด๋ฒคํธ | ํจ์์ค๋ช |
Awake() | ์ค๋ธ์ ํธ๊ฐ ์ธ์คํด์คํ๋ ์งํ ํธ์ถ. ์คํฌ๋ฆฝํธ ๊ฐ ์ฐธ์กฐ ์ฐ๊ฒฐ์ ์์ฃผ ์ฌ์ฉ. Start()๋ณด๋ค ๋จผ์ ํธ์ถ๋จ. |
OnEnable() | ์ค๋ธ์ ํธ๊ฐ ํ์ฑํ๋ ๋๋ง๋ค ํธ์ถ. ์ปดํฌ๋ํธ๊ฐ ์ผ์ง๊ฑฐ๋ ์ค๋ธ์ ํธ๊ฐ ํ์ฑํ๋๋ฉด ํธ์ถ๋จ. |
Reset() | ์๋ํฐ์์ ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ ๋ ์๋ ํธ์ถ๋จ. ๊ธฐ๋ณธ๊ฐ ์ด๊ธฐํ ๋ชฉ์ . |
Start() | ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ๋ ์ํ์ผ ๋, ์ฒซ ๋ฒ์งธ ํ๋ ์ ์ ์ ๋จ ํ ๋ฒ ํธ์ถ๋จ. |
- Awake: ์ด ํจ์๋ ํญ์ Start ํจ์ ์ ์ ํธ์ถ๋๋ฉฐ ํ๋ฆฌํน์ด ์ธ์คํด์คํ ๋ ์งํ์ ํธ์ถ๋ฉ๋๋ค. ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์์ํ๋ ๋์ ๋นํ์ฑ ์ํ์ธ ๊ฒฝ์ฐ Awake ํจ์๋ ํ์ฑํ๋ ๋๊น์ง ํธ์ถ๋์ง ์์ต๋๋ค.
- OnEnable: (์ค๋ธ์ ํธ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง): ์ค๋ธ์ ํธ ํ์ฑํ ์งํ ์ด ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ๋ ๋ฒจ์ด ๋ก๋๋๊ฑฐ๋ ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์ธ์คํด์คํ๋ ๋์ ๊ฐ์ด MonoBehaviour๋ฅผ ์์ฑํ ๋ ์ด๋ ๊ฒ ํ ์ ์์ต๋๋ค.
- Start: ์คํฌ๋ฆฝํธ ์ธ์คํด์ค๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์ฒซ ๋ฒ์งธ ํ๋ ์ ์ ๋ฐ์ดํธ ์ ์ ํธ์ถ๋ฉ๋๋ค.
๐น 2. ๋ฌผ๋ฆฌ ์ ๋ฐ์ดํธ (Physics)
์ด๋ฒคํธ | ํจ์์ค๋ช |
FixedUpdate() | ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ํธ์ถ๋๋ ๋ฌผ๋ฆฌ ์ ๋ฐ์ดํธ. Rigidbody ๋ฌผ๋ฆฌ ๊ณ์ฐ ์ ์ฌ๊ธฐ์ ๊ตฌํ. |
OnTriggerEnter/Stay/Exit() | ํธ๋ฆฌ๊ฑฐ ์ถฉ๋ ๊ฐ์ง ์ด๋ฒคํธ |
OnCollisionEnter/Stay/Exit() | ์ผ๋ฐ ์ถฉ๋ ๊ฐ์ง ์ด๋ฒคํธ |
Unity - Update(), FixedUpdate(), LateUpdate()
โ Unity์ 3๊ฐ์ง ์ฃผ์ ๋ฃจํ ํจ์ํจ์ ์ด๋ฆ์คํ ์ฃผ๊ธฐ์ฉ๋ํน์งUpdate()๋งค ํ๋ ์๋ง๋ค์ฌ์ฉ์ ์ ๋ ฅ, ์ผ๋ฐ ๋ก์งํ๋ ์ ์๋์ ๋ฐ๋ผ ์คํ ๋น๋ ๋ฌ๋ผ์ง (๊ฐ๋ณ)FixedUpdate()๊ณ ์ ์๊ฐ ๊ฐ๊ฒฉ๋ง๋ค๋ฌผ๋ฆฌ ์ฐ์ฐ (Rigidb
dev-jen.tistory.com
- FixedUpdate: FixedUpdate ๋ ์ข
์ข
Update ๋ณด๋ค ๋ ์์ฃผ ํธ์ถ๋ฉ๋๋ค. ํ๋ ์ ์๋๊ฐ ๋ฎ์ ๊ฒฝ์ฐ ํ๋ ์๋น ์ฌ๋ฌ ๋ฒ ํธ์ถ๋ ์ ์์ผ๋ฉฐ ํ๋ ์ ์๋๊ฐ ๋์ ๊ฒฝ์ฐ ํ๋ ์ ์ฌ์ด์ ํธ์ถ๋์ง ์์ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฌผ๋ฆฌ ๊ณ์ฐ ๋ฐ ์
๋ฐ์ดํธ๋ FixedUpdate ํ ์ฆ์ ๋ฐ์ํฉ๋๋ค. FixedUpdate ์ ์์ง์ ๊ณ์ฐ์ ์ ์ฉํ ๋ Time.deltaTime ๋งํผ ๊ฐ์ ๊ณฑํ ํ์๊ฐ ์์ต๋๋ค. FixedUpdate ๊ฐ ํ๋ ์ ์๋์ ๊ด๊ณ์์ด ์ ๋ขฐํ ์์๋ ํ์ด๋จธ์์ ํธ์ถ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
- Update: Update ๋ ํ๋ ์๋น ํ ๋ฒ ํธ์ถ๋ฉ๋๋ค. ํ๋ ์ ์
๋ฐ์ดํธ๋ฅผ ์ํ ์ฃผ์ ์์
ํจ์์
๋๋ค.
- LateUpdate: LateUpdate ๋ Update ๊ฐ ๋๋ ํ ํ๋ ์๋น ํ ๋ฒ ํธ์ถ๋ฉ๋๋ค. Update ์์ ์ํ๋ ๋ชจ๋ ๊ณ์ฐ์ LateUpdate ๊ฐ ์์ํ ๋ ์๋ฃ๋ฉ๋๋ค. LateUpdate ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์์ 3์ธ์นญ ์นด๋ฉ๋ผ์ ์ฌ์ฉํฉ๋๋ค. ์บ๋ฆญํฐ๋ฅผ ์์ง์ด๊ณ Update ๋ก ๋ฐฉํฅ์ ๋ฐ๊พธ๊ฒ ํ๋ ๊ฒฝ์ฐ LateUpdate ์์ ๋ชจ๋ ์นด๋ฉ๋ผ ์์ง์๊ณผ ๋กํ
์ด์
๊ณ์ฐ์ ์ํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์นด๋ฉ๋ผ๊ฐ ํฌ์ง์
์ ์ถ์ ํ๊ธฐ ์ ์ ์บ๋ฆญํฐ๊ฐ ์์ ํ ์์ง์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๐น 3. ์ ๋ ฅ ๋ฐ ๊ฒ์ ๋ก์ง (Input & Game Logic)
์ด๋ฒคํธ | ํจ์์ค๋ช |
Update() | ํ๋ ์๋ง๋ค ํ ๋ฒ ํธ์ถ. ๊ฒ์ ๋ก์ง์ ์ค์ฌ ํจ์ |
LateUpdate() | Update()๊ฐ ๋๋ ์งํ ํธ์ถ. ์ฃผ๋ก ์นด๋ฉ๋ผ ์ถ์ ์ฒ๋ฆฌ ๋ฑ์ ์ฌ์ฉ |
OnMouseDown/Up/Drag() | ๋ง์ฐ์ค ๊ด๋ จ ์ด๋ฒคํธ ๊ฐ์ง |
๐น 4. ์ ๋๋ฉ์ด์ ๊ด๋ จ (Animation)
์ด๋ฒคํธ | ํจ์์ค๋ช |
OnAnimatorMove() | ๋ฃจํธ ๋ชจ์ ์ ์ด์ฉ ํจ์ |
OnAnimatorIK() | IK(์ญ์ด๋ํ) ์ฒ๋ฆฌ์ฉ ํจ์ |
StateMachineBehaviour ์ฝ๋ฐฑ๋ค | OnStateEnter, OnStateExit, OnStateUpdate, OnStateIK, OnStateMove ๋ฑ |
๋ด๋ถ ํ๋ก์ธ์ค | State Machine Update, ProcessGraph, ProcessAnimation, WriteTransform, WriteProperties ๋ฑ |
๐น 5. ๋ ๋๋ง ์ /ํ ์ฒ๋ฆฌ (Rendering)
์ด๋ฒคํธ | ํจ์์ค๋ช |
OnPreCull() | ์นด๋ฉ๋ผ๊ฐ ์ค๋ธ์ ํธ๋ฅผ ์ปฌ๋งํ๊ธฐ ์ ํธ์ถ |
OnBecameVisible/Invisible() | ์นด๋ฉ๋ผ ์์ผ์ ๋ค์ด์ค๊ฑฐ๋ ๋๊ฐ ๋ ํธ์ถ |
OnWillRenderObject() | ์ค๋ธ์ ํธ๊ฐ ์นด๋ฉ๋ผ์ ์ํด ๋ ๋๋ง๋ ๋ ํธ์ถ |
OnPreRender() / OnPostRender() | ์นด๋ฉ๋ผ ๋ ๋๋ง ์ /ํ ํธ์ถ |
OnRenderImage() | ํฌ์คํธ ํ๋ก์ธ์ฑ์ ์ฌ์ฉ |
OnRenderObject() | GL์ด๋ Graphics API๋ฅผ ์ง์ ํธ์ถํ ๋ |
OnDrawGizmos() | ์๋ํฐ์์ Gizmo๋ฅผ ๊ทธ๋ฆด ๋ |
OnGUI() | GUI๋ฅผ ๊ทธ๋ฆด ๋. ํ๋ ์๋น ์ฌ๋ฌ ๋ฒ ํธ์ถ๋จ |
๐น 6. ์ฝ๋ฃจํด (Coroutine)
์ฌ์ฉ๋ฒ | ์ค๋ช |
yield return null | ๋ค์ ํ๋ ์๊น์ง ๋๊ธฐ |
yield return new WaitForSeconds(x) | x์ด๊ฐ ๋๊ธฐ |
yield return new WaitForFixedUpdate() | ๋ค์ FixedUpdate ์ดํ ์คํ |
yield return StartCoroutine() | ๋ค๋ฅธ ์ฝ๋ฃจํด์ ์๋ฃํ ๋๊น์ง ๋๊ธฐ |
๐น 7. ์ข ๋ฃ ๋ฐ ๋นํ์ฑํ (Decommissioning)
์ด๋ฒคํธ ํจ์ | ์ค๋ช |
OnApplicationPause() | ์ฑ์ด ์ผ์์ ์ง ๋ ๋ ํธ์ถ |
OnApplicationQuit() | ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ ๋ ํธ์ถ |
OnDisable() | ์ค๋ธ์ ํธ๊ฐ ๋นํ์ฑํ๋ ๋ ํธ์ถ |
OnDestroy() | ์ค๋ธ์ ํธ๊ฐ ์ ๊ฑฐ๋๊ฑฐ๋ ์ฌ์ด ์ข ๋ฃ๋ ๋ ํธ์ถ๋จ |
โ ์์ฝ: ์ฃผ์ ์์ ํ๋ฆ
- Awake → OnEnable → Start
- FixedUpdate → Update → LateUpdate
- (ํ์ ์) Trigger/Collision → Animator ๊ด๋ จ → Rendering → Coroutine ์ฌ๊ฐ
- OnDisable → OnDestroy → OnApplicationQuit
์๋ ์๋ช ์ฃผ๊ธฐ์ ๋ํด์๋ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋๋ฐ..๋ด๊ฐ ๋ชจ๋ฅด๋ ๋ผ์ดํ์ฌ์ดํด์ ํจ์๊ฐ ๊ต์ฅํ ๋ง์๋ค..ํ๋์ฉ ์ ๋ฆฌํด๋ณด๋ฉด์ ๋๊ผ์ง๋ง ์์ง๋ ๊ณต๋ถํ ๊ฒ ์ฐ๋๋ฏธ ์ธ๊ฑฐ๊ฐ๋คใ ใ ..