[Unity] Unity 첫걸음 — 캐릭터 좌우반전 if문 고민

shin0112·2025년 9월 26일

Unity

목록 보기
1/13

1. 시작

오늘은 Unity를 설치하고 기본적인 씬 구성, 애니메이션 적용, 캐릭터 움직이기를 연습했다.
아직 완전 초보라서 새로운 툴에 적응하는 과정 자체가 신기하고 재미있다.


2. 문제와 마주치다

애니메이션 작업을 하던 중 이런 에러를 처음 만났다.

'Rtan' AnimationEvent has no function name specified!

처음에는 검색을 해봐도 잘 이해가 안 되었다. Animation function을 지우면 된다고 하는데, 그게 뭐지? 조금 더 찾아보고는 아래 글을 보고 해결했다.
AnimationEvent has no function name specified!

Animation 윈도우의 Event 추가 버튼을 실수로 눌러버려 정의되지 않은 function이 추가된 상태였고, 그게 곧 위의 에러였다. (하지만 실수로 누르기 너무 좋게 생겼다.)

Animation 창에서 잘못 추가된 이벤트 마커를 삭제하면 끝.

크게 복잡한 문제는 아니었지만, 새로운 툴을 쓰다 보면 이런 사소한 부분에서도 실수가 생길 수 있다는 점이 느껴졌다.


3. 공부하면서 생긴 고민

강의에 나오는 대로 따라 코드를 작성하면서도 흥미로운 고민이 생겼다.
캐릭터는 1) 벽에 부딪혔을 때, 2) 화면을 클릭했을 때의 2가지의 조건에 의해서 좌우반전이 일어난다.
강의에서는 클릭과 벽 충돌을 각각 if문으로 분리했는데, 나는 보고 '코드가 동일하네?' 하고선 if문을 합쳤다.

// 통합된 if문
if (Input.GetMouseButtonDown(0) || transform.position.x > 2.6f || transform.position.x < -2.6f)
{
    renderer.flipX = !renderer.flipX;
    direction *= -1;
}

그리고 나서 든 생각이 이걸 합쳐도 괜찮은 건가 싶었다.

각 상황을 생각해보면,

  • 분리된 if문: 클릭과 벽 충돌이 동시에 발생 → 반전 2번 → 캐릭터가 제자리 멈춤
  • 통합된 if문: 조건이 겹쳐도 반전 1번 → 캐릭터 정상적으로 방향 전환
    이렇게 동작할 것이라고 생각했다.

내가 개발자라면 클릭 또는 벽 충돌이 동시에 동작하더라도 방향 전환이 한 번만 일어나게 하는 의도를 가지고 개발할 것 같은데, 현업에서는 어떻게 코딩하는 것이 더 좋을지, 아니면 별 차이가 없을지, 또는 이런 코드 몇 줄 때문에 정말로 문제가 생길지 궁금해졌다.
아직은 답을 못 들었지만, 이런 작은 차이도 고민하게 되는 게 재미있었다.

4. 배운 점

Unity AnimationEvent 에러는 사소한 클릭 실수에서도 쉽게 발생한다.

에러 메시지가 난해해 보여도 원인은 단순할 수 있다.

코드 작성 방식(조건 분리 vs 통합) 하나에도 결과가 달라지고, 어떤 게 더 “좋은 코드”일지 고민해보는 게 중요하다.

0개의 댓글