protected override void ChangeAnimation(Vector2 moveVector) { // 이동 애니메이션 if (isMoving) { // 오른쪽 if (moveVector.x > 0) { // 위 if (moveVector.y > 0) { if (beforeDir != BEHAVIOR_MODE.MOVE_TOPRIGHT) { // 이전에 발동된 Trigger을 해제 anim.ResetTrigger("TopLeft"); anim.ResetTrigger("BotLeft"); anim.ResetTrigger("BotRight"); // 새로운 이동 Trigger 지정 anim.SetTrigger("TopRight"); beforeDir = BEHAVIOR_MODE.MOVE_TOPRIGHT; } } // 아래 else { if (beforeDir != BEHAVIOR_MODE.MOVE_BOTRIGHT) { // 이전에 발동된 Trigger을 해제 anim.ResetTrigger("TopLeft"); anim.ResetTrigger("BotLeft"); anim.ResetTrigger("TopRight"); // 새로운 이동 Trigger 지정 anim.SetTrigger("BotRight"); beforeDir = BEHAVIOR_MODE.MOVE_BOTRIGHT; } } } // 왼쪽 else { // 위 if (moveVector.y > 0) { if (beforeDir != BEHAVIOR_MODE.MOVE_TOPLEFT) { // 이전에 발동된 Trigger을 해제 anim.ResetTrigger("TopRight"); anim.ResetTrigger("BotLeft"); anim.ResetTrigger("BotRight"); // 새로운 이동 Trigger 지정 anim.SetTrigger("TopLeft"); beforeDir = BEHAVIOR_MODE.MOVE_TOPLEFT; } } // 아래 else { if (beforeDir != BEHAVIOR_MODE.MOVE_BOTLEFT) { // 이전에 발동된 Trigger을 해제 anim.ResetTrigger("TopLeft"); anim.ResetTrigger("BotRight"); anim.ResetTrigger("BotRight"); // 새로운 이동 Trigger 지정 anim.SetTrigger("BotLeft"); beforeDir = BEHAVIOR_MODE.MOVE_BOTLEFT; } } } } // 정지 애니메이션 else { anim.SetTrigger("Idle"); beforeDir = BEHAVIOR_MODE.IDLE; } }
private void ReverseChangeAnimation() { // 터치 후 이동중이라면.. if (isMoving) { // 클릭 좌표가 플레이어보다 왼쪽에 있다. if (trans.position.x > moveVector.x) { // 클릭 좌표가 플레이어보다 아래에 있다. if (trans.position.y > moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_BOTLEFT)) { anim.SetTrigger("TopRight"); beforeDir = BEHAVIOR_MODE.MOVE_TOPRIGHT; } // 클릭 좌표가 플레이어보다 위에 있다. else if (trans.position.y <= moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_TOPLEFT)) { anim.SetTrigger("BotRight"); beforeDir = BEHAVIOR_MODE.MOVE_BOTRIGHT; } } // 클릭 좌표가 플레이어보다 오른쪽에 있다. else { // 클릭 좌표가 플레이어보다 아래에 있다. if (trans.position.y > moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_BOTRIGHT)) { anim.SetTrigger("TopLeft"); beforeDir = BEHAVIOR_MODE.MOVE_TOPLEFT; } // 클릭 좌표가 플레이어보다 위에 있다. else if (trans.position.y <= moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_TOPRIGHT)) { anim.SetTrigger("BotLeft"); beforeDir = BEHAVIOR_MODE.MOVE_BOTLEFT; } } } // 정지한 상태이면.. else { // 이동하던 방향에 따라 캐릭터기 Idle 하며 바라보는 애니메이션 지정 switch (beforeDir) { case BEHAVIOR_MODE.MOVE_BOTLEFT: anim.SetTrigger("Idle_BotLeft"); break; case BEHAVIOR_MODE.MOVE_BOTRIGHT: anim.SetTrigger("Idle_BotRight"); break; case BEHAVIOR_MODE.MOVE_TOPLEFT: anim.SetTrigger("Idle_TopLeft"); break; case BEHAVIOR_MODE.MOVE_TOPRIGHT: anim.SetTrigger("Idle_TopRight"); break; } beforeDir = BEHAVIOR_MODE.IDLE; } }