μλ₯Όλ€μ΄ μ£Όμ¬μλ₯Ό λ§λ€μ΄μ ꡴리λ κΈ°λ₯μ ꡬννκ³ μΆμ λ,
1. μ£Όμ¬μλ₯Ό μμ±νλ ν¨μ
2. μ£Όμ¬μλ₯Ό ꡴리λ ν¨μ
3. μ£Όμ¬μ κ°μ κ³μ°νλ ν¨μ
μ΄λ κ² μΈ κ°μ§ λ©μλλ₯Ό λ§λ€κ³ ,
4. μ ν¨μλ€μ μ΄κ΄νλ ν¨μ
λ‘ κΎΈλ¦°λ€κ³ κ°μ ν΄λ΄ μλ€. μλ₯Όλ€λ©΄
void 4λ²λ©μλ()
{
1λ² λ©μλ();
2λ² λ©μλ();
3λ² λ©μλ();
}
μ΄λ° μμΌλ‘μ.
λ¨, 1λ² λ©μλκ° λλμΌ 2λ²μ΄ μ€νλκ³ , 2λ²μ΄ λλμΌ 3λ² μ΄λ° μμΌλ‘ μμ°¨μ μΌλ‘ μ΄μ΄μ§κ² λ§λ€κ³ μΆμ΅λλ€. (μ°μΆμ΄ νμν΄μ μ½λ£¨ν΄μΌλ‘ λ§λ€ μκ°μ λλ€)
κ·Όλ° μ΄ κ²½μ°μ μ½λ°±μ μ΄λ»κ² μ¨μΌν μ§ λͺ¨λ₯΄κ² λλΌκ΅¬μ.... κ·Έλ λ€κ³ 1λ² μ½λ£¨ν΄μ λ§μ§λ§μ StartCoroutine(2λ² λ©μλ);λ₯Ό λ£μλ κ²°ν©λκ° λ무 λμμ Έμ λ컀νλ§ μν€κ³ μΆμ΄μ λ°©λ²μ μ°Ύκ³ μμ΅λλ€.
μ΄λ° κ²½μ° λ€λ€ μ΄λ»κ² ꡬννμλμ?
Start() { StartCoroutine("Foo") }IEnumerator Foo(){ return Method1 return Method2 return Method3}IEnumerator Method1() { .... return null}IEnumerator Method2() {... return null}
μ...? μ΄κ² λλ€κ΅¬μ? returnμ΄ yield return λ§μνμλκ±° λ§μ£ ?
μ€νν΄λ΄€λλ° μ μλνμ§ μλλ° μ΄λ€ μ리μΈμ§ νΉμ μ€λͺ ν΄μ£Όμ€μ μμΌμ€κΉμ...? μ κ° λμΉ λΆλΆμ΄ μ΄λ€κ±΄μ§ κΆκΈν΄μμ
oo Yield return
μ½λ£¨ν΄μμ yeild return null μ ννλ μμ λ»ν¨ while(true) { μ£Όμ¬μλ₯Ό λλ¦°λ€; if (μ£Όμ¬μκ° λ€κ΅΄λ €μ‘μΌλ©΄) break;} yield return nullνλ©΄ νλ©μλ λλ΄κ³ Fooλ‘ λμκ°λ©΄μ λ€μ λ©μλλ‘ λ€μ΄κ°
FSMμ 곡λΆν΄λ΄ μλ€