public string getAnim(HeroStage stage)
    {
        switch (stage)
        {
        case HeroStage.start:
            return(run);

        case HeroStage.run:
            return(run);

        case HeroStage.jump:
            return(jump);

        case HeroStage.kick:
            return(dash);

        case HeroStage.stop:
            return(relax);

        case HeroStage.attack:
            return(attack);

        case HeroStage.death:
            return(death);

        default:
            return(idle);
        }
    }
    // Use this for initialization
    private void Start()
    {
        stage    = HeroStage.start;
        runSpeed = runSpeed <= 0f ? 1f : runSpeed;
        dirJump  = Vector3.up * 0.05f;
//		rigid = heroObject.GetComponent<Rigidbody> ();
        isJumpAgain = true;
        audioSource = gameObject.GetComponent <AudioSource> ();
    }
 private void onChangeStage(HeroStage oldStage, HeroStage newStage)
 {
     if (oldStage == newStage || (newStage == HeroStage.jump && !isWillJump()))
     {
         return;
     }
     else if (oldStage == HeroStage.jump)
     {
         didJump();
     }
     else if (newStage == HeroStage.death)
     {
         playClip(soundDeath);
     }
     // Change Anim
     animator.SetBool(heroAnim.getAnim(newStage), true);
     time = 0f;
 }
 public void setStage(HeroStage stage)
 {
     onChangeStage(this.stage, stage);
     this.stage = stage;
     setRunDir();
 }