¸ÞÄ«´Ô2

Run°ú Jump ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãß°¡ÇÏ°í ½ºÅ©¸³Æ®·Î Á¦¾î¸¦ Çغ¸ÀÚ.

1. ¾Ö´Ï¸ÞÀÌ¼Ç FSM ¸¸µé±â

Make TransitionÀ¸·Î À§¿Í °°ÀÌ ¾Ö´Ï¸ÞÀ̼ÇÀ» ¸¸µç´Ù.

2. Æ®·£Áö¼Ç Á¶°Ç ÁöÁ¤

"+"¸¦ ´­·¯ Transition Á¶°ÇÀÌ µÉ º¯¼ö¸¦ Ãß°¡ÇÏÀÚ

speed : Float Å¸ÀÔ
jump : Bool Å¸ÀÔ 

Make TransitionÀ¸·Î ¿¬°áÇÑ ¼±À» Ŭ¸¯Çϸé Inspector â¿¡ Conditions ¼Ó¼ºÀÌ ´«¿¡ µé¾î ¿Ã°ÍÀÌ´Ù.
½ºÅ©¸³Æ®·Î ÀÌ ¼Ó¼ºÀ» ¸¸Á· ½ÃÅ°¸é ¾Ö´Ï¸ÞÀÌ¼Ç ÀüȯÀÌ µÈ´Ù.

Idle¿¡¼­ Run »óÅÂÀÇ Á¶°Ç

Run¿¡¼­ Idle »óÅÂÀÇ Á¶°Ç

Idle¿¡¼­ Jump »óÅÂÀÇ Á¶°Ç

Jump¿¡¼­ Idle »óÅÂÀÇ Á¶°Ç :
ExitTimeÀº À¯´ÏƼ ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â °ÍÀ¸·Î ¾Ö´Ï¸ÞÀÌ¼Ç ³¡³ª±âÀüÀ» ¸»ÇÏ´Â °Í °°´Ù.
 

3. ½ºÅ©¸³Æ®·Î Á¦¾î

PlyaerInput ½ºÅ©¸³Æ®¸¦ ÀÛ¼º ÈÄ, U_Character_REF ÄÄÆ÷³ÍÆ®·Î Ãß°¡ ÇÑ´Ù.

[RequireComponent(typeof(Animator))]

public class PlayerInput : MonoBehaviour {

    protected Animator avatar;

 

    void Start () {

        avatar = GetComponent<Animator>();

    }

 

    void Update () {

        float h = Input.GetAxis("Horizontal");

        float v = Input.GetAxis("Vertical");

 

        avatar.SetFloat("speed", h*h+v*v);

        avatar.SetBool("jump", Input.GetButtonDown ("Jump"));   

    }

}

È­»ìǥ۸¦ ´©¸£¸é speed¿¡ µû¶ó ¾ÕÀ¸·Î¸¸ °£´Ù.
½ºÆäÀ̽º Å°¸¦ ´©¸£¸é ¾Ö´Ï¸ÞÀ̼ÇÀÌ ¹Ù²î´Âµ¥ Á¡ÇÁ°¡ ¾Æ´Ï¶ó ±×³É ¾É´Â µ¿ÀÛ¸¸ ÇÑ´Ù.
¹º°¡ ¿À·ù°¡ ÀÖ³ªº»µ¥, ¿©±â¼­ ¸¶¹«¸® ÇÑ´Ù.