1. Editor ๊ด๋ จ
Editor ๋ชจ๋์์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฐ๋ก ๋ฐ์๋๋ค. Script์์ ๋ณ์๋ฅผ ํ ๋นํ๊ณ ๋ค์ Editor๋ก ๋์์ค๋ฉด ๋ก๋ฉ์ด ๋ฐ์ํ๊ณ public ์ผ๋ก ์ ์ธํ๋ค๋ฉด Inspector ์ฐฝ์์ ๋ณ๋์ ์คํ๊ณผ์ ์์ด ํ์ธ ๊ฐ๋ฅํ๋ค.
Reset(): Object๋ฅผ ์์ฑํ๊ณ Inspector ์ฐฝ์์ Reset ํ ๋ ์คํ๋๋ค. Object์ ๊ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ค์ ํ ๋ ์ฌ์ฉ๋๋ค.
2. Initialization ๊ด๋ จ
: ์ด๊ธฐํ ํจ์๋ค์ด ์ฌ๋ฌ๊ฐ์ง ์กด์ฌํ๋ฉฐ ์์์ ๋ฐ๋ผ์ ์ ์ ํ ๋ฐฐ์น๊ฐ ํ์ํ๋ค.
: ์ฌ์ด ์์ํ ๋ ํ๋ฒ๋ง ํธ์ถ๋๋ค.
Awake(): Play ๋ชจ๋์์ Scene์ด ์์๋๊ณ Prefab์ ์ธ์คํด์คํ ์งํ์ ํธ์ถ๋๋ค. ์์ ์ ํ ๋ฒ๋ง ํธ์ถ๋๋ฉฐ Object๊ฐ ๋นํ์ฑํ ๋์ด ์์ด๋ ํธ์ถ๋๋ค.
* Prefab ์ธ์คํด์ค๋: ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ ๊ฒ์ ์ค๋ธ์ ํธ(Prefab)์ ์ค์๊ฐ์ผ๋ก ๋ง๋ ๋ค๋ ๋ป.
OnEnable(): Awake() ๋ค์์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ Scene์ด ์์๋๊ณ ํ ๋ฒ๋ง ํธ์ถ๋๋ Awake๋ Start์ ๋ฌ๋ฆฌ Object๊ฐ ํ์ฑํ ๋ ๋๋ง๋ค ํธ์ถ๋๋ค.
Start(): ์ธ์คํด์ค๊ฐ ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ง ๋ค๋ฅธ ์ด๊ธฐํ ํจ์ ์ดํ & ์ฒซ๋ฒ์งธ ํ๋ ์ ์ ๋ฐ์ดํธ ์ ์ ํธ์ถ๋๋ค.
3. Physics ๊ด๋ จ
๊ฒ์ ๋ด์์ ์ด๋ฃจ์ด์ง๋ ๋ฌผ๋ฆฌ์ ์์ฉ์ ๋ฌผ๋ฆฌ ์ฃผ๊ธฐ ๋ด์์ ์ด๋ฃจ์ด ์ง๋ค.
FixedUpdate():
Update()์ ๋ฌ๋ฆฌ ํ๋ ์๋ง๋ค ํธ์ถ๋๋๊ฒ ์๋๋ผ Fixed Timestep์ ์ค์ ๋ ๊ฐ์ ๋ฐ๋ผ์ ์ผ์ ํ๊ฒ ํธ์ถ๋๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌํจ๊ณผ์ ๋ง์ด ์ฌ์ฉํ๋ค.
OnTrigger/Collision - Enter/Stay/Exit
์ถฉ๋์ฒด์ ์ถฉ๋์ ํ์ ํ๋ ๊ธฐ๋ฅ์ ํจ์๋ก Enter๋ ์ถฉ๋ ์๊ฐ, Stay๋ ์ถฉ๋ ์ค, Exit์ ์ถฉ๋์ด ๋๋ ๋๋ฅผ ํ์ ํ ์ ์๋ค.
Stay์ ๊ฒฝ์ฐ ํ๋ ์ ๋จ์๋ก ์ถฉ๋๋๋ ๋์ ๊ณ์ ํธ์ถ๋๋ค.
4. Input Events
๋ง์ฐ์ค ์ ๋ ฅ ํ์ ์ด ์งํ๋๋ ์ฃผ๊ธฐ.
OnMouse Over/Enter/Down/Up/Exit/Drag
5. Game Logic
๊ฒ์์ ์ ๋ฐ์ ์ธ ๋์๋ค์ ์คํฌ๋ฆฝํธ๊ฐ ํธ์ถ๋๋ ์ฃผ๊ธฐ.
Update(): ํ๋ ์ ๋น ํ๋ฒ ํธ์ถ๋๋ ํจ์. ํ๋์จ์ด ์ฑ๋ฅ์ ๋ฐ๋ผ ์๊ฐ๋น ํ๋ ์์ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ ๋ฌผ๋ฆฌ์ ์์ฉ์ด ์๋ ๋จ์ ํค ์ ๋ ฅ ๋ฑ์ ๋ฐ์ ๋ ์ฌ์ฉํจ.
yield null/WaitForSeconds/WaitForFixedUpdate/WWW/StartCoroutine : ์ฝ๋ฃจํด ์ฌ์ฉ์ ์ง์ฐ ์ํฌ ์๊ฐ๋ค์ ์ ํ
- null : ํ๋ ์์ ๋ํ ๋ชจ๋ Update ํจ์๊ฐ ํธ์ถ๋ ํ ๋์
- WaitForseconds : ํ๋ ์์ ๋ํ ๋ชจ๋ Update ํจ์๊ฐ ํธ์ถ๋ ํ ์ง์ ๋ ์๊ฐ ์ง์ฐ ํ ๋์
- WaitForFixedUpdate : ํ๋ก์ ํธ๋ด ๋ชจ๋ FixedUpdate ํธ์ถ ํ์ ๋์
- WWW : WWW ๋ค์ด๋ก๋ ํ ๋์
- StartCoroutine : ๋ค๋ฅธ ์ฝ๋ฃจํด์ด ์๋ฃ๋ ๋ ๊น์ง ๋๊ธฐ ํ ๋์
LateUpdate(): Update๊ฐ ๋๋ ํ ํ๋ ์๋น ํ๋ฒ ํธ์ถ๋จ. ์บ๋ฆญํฐ๋ค์ Update()๋ฌธ์์ ์งํ์ํค๊ณ LateUpdate์์๋ ์บ๋ฆญํฐ๋ฅผ ๋ฐ๋ผ๋ค๋๋ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์น์์ผ์ ์บ๋ฆญํฐ๊ฐ ์์ ํ ์์ง์๋์ง๋ฅผ ํ์ธํ ํ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํจ.
6.SceneRendering
์ค์ ๋ก ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ ๋๋ง ๊ตฌ๊ฐ
OnPreCUll / OnWillRenderObject / OnBecameVisible / OnBecameInvisible / OnPreRender / OnRenderObject / OnPostRender / OnRenderImage
7. Gizmo rendering
Gizmo๊ฐ ๊ทธ๋ ค์ง๋ ์ง์ .Gizmo๋ ๊ธฐ๋ณธ์ ์ผ๋ก Editor๋ชจ๋์์๋ง ๋ณผ ์ ์์ง๋ง GL ํด๋์ค๋ฅผ ์ฌ์ฉํด์ ๋น๋ ํ๋ฉด์์์๋ ํ์ํ ์ ์๋๋ฐ ์ด ๋ ๊ทธ๋ ค์ง๋ ์์ ์ Life Cycle์ ๋ง์ถฐ OnPostRender๋ก ํด์ค์ผ ์ ์์ ์ผ๋ก ๊ทธ๋ ค์ง๋ค.
OnDrawGizmos()
8. GUI Rendering
GUI ์ด๋ฒคํธ์ ๋ฐ๋ผ ํ๋ ์๋ง๋ค ์ฌ๋ฌ์ฐจ๋ก ํธ์ถ๋๋ค.
๋ ์ด์์, ๋ฆฌํ์ธํธ -> ๋ ์ด์์, ํค๋ณด๋/๋ง์ฐ์ค ์ด๋ฒคํธ๊ฐ ๊ฐ ์ ๋ ฅ ์ด๋ฒคํธ์ ๋ํด ์ฒ๋ฆฌ ๋๋ค.
OnGUI()
9. Pausing
์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ง๋ ๋ ํธ์ถ
OnApplicationPause()
10. ์ค๋ธ์ ํธ๋ฅผ ํ๊ดดํ ๋
OnDestroy(): Object๊ฐ ์ญ์ ๋ ๋ ๋ง์ง๋ง ํ๋ ์์ ์ ๋ฐ์ดํธ ํ ํธ์ถ๋๋ค. Destroy(gameObject) ํน์ Scene ์ข ๋ฃ ์์ ํธ์ถ๋๋ค.
11. ์ข ๋ฃํ ๋
Life Cycle์ ๋์ ํด๋นํ๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ๋ Object๊ฐ ์ญ์ ๋ ๋์ ์ฃผ๊ธฐ์ ํด๋นํ๋ค.
OnApplicationQuit(): ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋๊ธฐ ์ ๋ชจ๋ ๊ฒ์ Object์์ ํธ์ถ๋๋ค. Editor์์๋ ์ฌ์ฉ์๊ฐ ํ๋ ์ด๋ฅผ ์ข ๋ฃํ ๋, ์น ํ๋ ์ด์ด๋ผ๋ฉด ์น ๋ทฐ๊ฐ ๋ซํ ๋ ํธ์ถ๋๋ ๊ฒ.
OnDisable(): ์ด ํจ์๋ฅผ ํธ์ถํ๋ Script๋ฅผ ๊ฐ์ง Object๊ฐ ๋นํ์ฑํ ๋ ๋๋ง๋ค ํธ์ถ๋๋ค.
[์ฐธ๊ณ ์ฐธ๊ณ ]
https://docs.unity3d.com/kr/2022.3/Manual/ExecutionOrder.html
https://bakcoding.github.io/unity3d/unity3d001-lifecycle/
'๐ฎ Unity Study > Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Unity] Advanced InputField ์ฌ์ฉ๋ฒ (0) | 2023.02.01 |
---|---|
[Unity] UGUI - Anchor(๊ธฐ์ค), Pivot(๋) (0) | 2022.12.15 |
[Unity] Scrollrect ์ปดํฌ๋ํธ๋ก Scrollview ๋ง๋ค๊ธฐ (0) | 2022.11.17 |
[Unity] TextMeshPro ํฐํธ์ถ๊ฐ ๋ฐ ํ๊ธ์ ๋ ฅ (0) | 2022.11.09 |
[Unity .gitignore] Unity .gitignore ํ์ผ ๋ง๋ค๊ธฐ (0) | 2022.10.20 |