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 |