(unity) ์๋ช
์ฃผ๊ธฐ,unity Lifecycle, ์ด๋ฒคํธ ํจ์์ ์คํ ์์, ์ฝ๋ฃจํด๐ฏ game engine/โฝ ์ ๋ํฐ(unity)2022. 9. 15. 16:32
Table of Contents
728x90
1. ์ฃผ์ ํจ์ ๊ฐ๋จ ์ ๋ฆฌ
Awake | Start ํจ์ ์ ์ ํธ์ถ๋๋ฉฐ ํ๋ฆฌํน์ด ์ธ์คํด์คํ ๋ ์งํ์ ํธ์ถ. |
Start | ์ ๋ฐ์ดํธ ์์ ์ง์ ์ต์ด๋ก ์คํ. |
OnEnalbe | ์ค๋ธ์ ํธ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ํ์ฑํ ์ง ํ ์ด ํจ์๋ฅผ ํธ์ถ. |
FixedUpdate | FixedUpdate ๋ ์ข
์ข
Update ๋ณด๋ค ๋ ์์ฃผ ํธ์ถ๋จ. ํ๋ ์ ์๋๊ฐ ๋ฎ์ ๊ฒฝ์ฐ ํ๋ ์๋น ์ฌ๋ฌ ๋ฒ ํธ์ถ๋ ์ ์์. ๋ชจ๋ ๋ฌผ๋ฆฌ ๊ณ์ฐ ๋ฐ ์ ๋ฐ์ดํธ๋ FixedUpdate ํ ์ฆ์ ๋ฐ์. FixedUpdate ์ ์์ง์ ๊ณ์ฐ์ ์ ์ฉํ ๋ Time.deltaTime ๋งํผ ๊ฐ์ ๊ณฑํ ํ์๊ฐ ์์. - ์ด์ : FixedUpdate ๊ฐ ํ๋ ์ ์๋์ ๊ด๊ณ์์ด ์ ๋ขฐํ ์์๋ ํ์ด๋จธ์์ ํธ์ถ๋๊ธฐ ๋๋ฌธ |
Update | Update ๋ ํ๋ ์๋น ํ ๋ฒ ํธ์ถ. ํ๋ ์ ์ ๋ฐ์ดํธ๋ฅผ ์ํ ์ฃผ์ ์์ ํจ์. |
LateUpdate | LateUpdate ๋ Update ๊ฐ ๋๋ ํ ํ๋ ์๋น ํ ๋ฒ ํธ์ถ Update ์์ ์ํ๋ ๋ชจ๋ ๊ณ์ฐ์ LateUpdate ๊ฐ ์์ํ ๋ ์๋ฃ |
OnGUI | GUI ์ด๋ฒคํธ์ ๋ฐ๋ผ ํ๋ ์๋น ์ฌ๋ฌ ๋ฒ ํธ์ถ ๋ ์ด์์ ๋ฐ ๋ฆฌํ์ธํธ ์ด๋ฒคํธ๋ ์ฐ์ ์ฒ๋ฆฌ๋๋ฉฐ ๊ฐ ์ ๋ ฅ ์ด๋ฒคํธ์ ๋ํด ๋ ์ด์์ ๋ฐ ํค๋ณด๋/๋ง์ฐ์ค ์ด๋ฒคํธ๊ฐ ๋ค์์ผ๋ก ์ฒ๋ฆฌ. |
OnPreRender | ์นด๋ฉ๋ผ๊ฐ ์ฌ ๋ ๋๋ง์ ์์ํ๊ธฐ ์ ์ ํธ์ถ. |
OnPostRender | ์นด๋ฉ๋ผ๊ฐ ์ฌ ๋ ๋๋ง์ ๋ง์น ํ ํธ์ถ. |
OnDrawGizmos | ์๊ฐํ ๋ชฉ์ ์ผ๋ก ์ฌ ๋ทฐ์ ๊ธฐ์ฆ๋ชจ๋ฅผ ๊ทธ๋ฆด ๋ ์ฌ์ฉ. |
OnApplicationQuit | ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ ์ ๋ชจ๋ ๊ฒ์ ์ค๋ธ์ ํธ์์ ํธ์ถ. ์๋ํฐ์์ ์ฌ์ฉ์๊ฐ ํ๋ ์ด ๋ชจ๋๋ฅผ ์ค์งํ ๋ ํธ์ถ. |
OnDisable | ๋์์ด ๋นํ์ฑํ๋๊ฑฐ๋ ๋นํ์ฑ ์ํ์ผ ๋ ์ด ํจ์๊ฐ ํธ์ถ. |
OnDestroy | ์ค๋ธ์ ํธ ์กด์ฌ์ ๋ง์ง๋ง ํ๋ ์์ ๋ํด ๋ชจ๋ ํ๋ ์ ์
๋ฐ์ดํธ๋ฅผ ๋ง์น ํ ์ด ํจ์๊ฐ ํธ์ถ. ์ค๋ธ์ ํธ๋ Object.Destroy ๋๋ ์ฌ ์ข ๋ฃ์ ๋ํ ์๋ต์ผ๋ก ํ๊ดด๋ ์ ์์. |
2. ์ฝ๋ฃจํด (CoRoutine -> Co"ํ๋ ฅ, ํจ๊ป" + Routine)
ํ ๋ถ๋ถ์์ ์คํ์ ์ค์งํ์ฌ Unity์ ์ ์ด๊ถ์ ๋๋ ค์ฃผ๊ณ , ๊ณ์ํ ๋๋ ๋ค์ ํ๋ ์์์ ์ค์งํ ๊ณณ๋ถํฐ ์คํ์ ๊ณ์ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.
- ์ฝ๋ฃจํด์ ๋์ : CleaningHouse( ) ์ฝ๋ฃจํด์ ์คํํ๋ฉด ๋จผ์ A๋ฅผ ์ฒญ์ํ๊ณ , ๋ค์์ yield๋ฌธ์ ๋ง๋๋ ์๊ฐ 10์ด ๋์ ์ฝ๋ฃจํด ์งํ์ด ์ผ์ ์ ์ง๋๋ค. ์ฝ๋ฃจํด์ด ์ฒ๋ฆฌ๋ฅผ ์ฌ๋ ๋์์๋ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ์ฝ๋๊ธฐ ์คํ ๋ ์๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ ์ฒ๋ฆฌ๋ฅผ ์ด์ด์ ์งํํ๋ค.
IEnumerator CleaningHouse
{
// A๋ฐฉ ์ฒญ์
yield return new WaitForSeconds(10f); // 10์ด ๋๊ธฐ
// B๋ฐฉ ์ฒญ์
yield return new WaitForSeconds(10f); // 10์ด ๋๊ธฐ
// C๋ฐฉ ์ฒญ์
}
- ์งํ ์์: IEnumerator CleaningHouse( ) -> A ๋ฐฉ ์ฒญ์ -> yield return new WaitForSeconds(10f); -> -> -> (10์ด ๋์ ๋ค๋ฅธ ์ฝ๋ ์คํ) -> -> -> B ๋ฐฉ ์ฒญ์ -> yield return new WaitForSeconds(10f); -> -> -> (10์ด ๋์ ๋ค๋ฅธ ์ฝ๋ ์คํ) ....
์ฝ๋ฃจํด์ด ์ฒ๋ฆฌ๋ฅผ ์ฌ๋ ๋์์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ์ฝ๋๊ฐ ์คํ๋ ์ ์๋ค.
- Unity ์ฝ๋ฃจํด ์ฌ์ฉ ๋ฌธ๋ฒ: Ienumerator ๋ฐํ ํ์
๊ณผ body ์ด๋๊ฐ์ ํฌํจ๋ yield ๋ฐํ๋ฌธ์ผ๋ก ์ ์ธํ๋ ๋ฉ์๋์ด๋ค.
- IEnumerator๋ "์ด๊ฑฐ์"๋ก ๋ฐ์ดํฐ์ ๋ชฉ๋ก์ ํ๋์ฉ ๋๊ฒจ์ค ๋ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค์ด๋ค. - ์ฝ๋ฃจํด ์คํ: StartCoroutine ( "์ฝ๋ฃจํด ๋ฉ์๋๋ฅผ ์คํํ ๋ฐํ๊ฐ" or "์ฝ๋ฃจํด ๋ฉ์๋์ ์ด๋ฆ" ) ;
- ์ฝ๋ฃจํด ์๊ฐ ์ง์ฐ
- ์ด ๋จ์๋ก ์ฌ๊ธฐ yield return new WaitForSeconds( ์๊ฐ ) ;
- ํ ํ๋ ์๋ง ์ฌ๊ธฐ: yield return null ; - ์ฝ๋ฃจํด ์ ์ง: StopCoroutine, StopAllCoroutine, ์ฝ๋ฃจํด์ ์ฐ๊ฒฐ๋ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋นํ์ฑํํ๊ธฐ ์ํด SetActive๋ฅผ false๋ก ์ค์ ํ๋ฉด ์ฝ๋ฃจํด์ด ์ ์ง ๋๋ค.
Reference.
- unity ๋ํ๋ฉํ ์ด์ Unity User Manual 2021.3 (LTS) - Unity ๋งค๋ด์ผ (unity3d.com)
- (๋์) ๋ ํธ๋ก์ ์ ๋ํฐ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์์ผ์ค
728x90
'๐ฏ game engine > โฝ ์ ๋ํฐ(unity)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(unity) ์๋์ ์๊ฐ ๊ฐ๊ฒฉ (0) | 2022.07.12 |
---|---|
(unity) GetComponent, GetAxis, OnTriggerEnter, OnCollisionEnter, FindObjectOfType (0) | 2022.07.12 |
(unity) MonoBehaviour? ๋ฉ์ธ์ง ๊ธฐ๋ฐ ๋ฐฉ์? ์ ๋ํฐ ์ด๋ฒคํธ ๋ฉ์๋? (0) | 2022.07.11 |
(unity/warning CS0108, NullReferenceException) (0) | 2022.04.18 |
(Unity/ error: CS8357) deterministic compilation failed (0) | 2022.04.16 |
@DoctorSunAhna :: ํํฌ์ฝ๋ฅ
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!