본문 바로가기

Unity/Knowledge

③ - Q&A

Q > 좌우로 움직이는 캐릭터를 만들기 위한 코딩 질문입니다.

if (transform.position.x >= 2.71f)

{

direction = -0.05f;

renderer.flipX = true;

}

으로 하였을 때, 우측 끝에 도달할 시 방향 전환이 잘 되는데

 

if (transform.position.x == 2.71f)

위와 같이 하였을 때 x값이 2.71에 도달하면 이동방향과 캐릭터가 전환되지 않는 이유가 무엇인가요?

 

A >

Unity에서는 float 값을 완전히 정확하게 비교하는 것이 권장되지 않습니다.

float 값을 정확하게 비교하는 것은

특히 부동 소수점의 한계로 인해 문제가 발생할 수 있습니다.

그러므로 범위를 정의하여 비교하는 것이 좋습니다.

"unity 부동 소수점 오차" 키워드로 구글링 하시면

보다 자세한 내용이 나와 있으니 참고해 보셔도 좋을 거 같습니다.

'Unity > Knowledge' 카테고리의 다른 글

④ - Q&A  (0) 2024.03.28
④ 몬스터 구현하기 - 몬스터 코딩하기  (0) 2024.03.28
③ 캐릭터 이동하기  (0) 2024.03.27
② 애니메이션 맛 보기  (0) 2024.03.27
① 기본 씬 구성  (0) 2024.03.27