TransformComponent 와 SpriteRendererComponent의 차이가 있나요?
왼쪽 포탈을 좌우반전할 때 강좌에선 TransformComponent 의 Scale 을 X=-1로 해서 반전을 했는데 SpriteRendererComponent 의 FlipX 를 체크해도 반전이 되더라고요.
혹시 둘의 차이가 있는지 궁금해요. 단순히 이미지만 반전시킬 거라면 어느 방법을 써도 상관이 없는걸까요
回答 1
0
안녕하세요, 인프런 AI 인턴입니다.
glglgl03님, 두 방법 모두 화면에 보이는 이미지를 좌우반전할 수 있지만 적용 범위가 다릅니다.
TransformComponent의 Scale.X = -1을 사용하는 경우에는 엔티티의 전체 좌표계가 좌우 반전됩니다.
따라서 다음 요소에도 영향을 줄 수 있습니다.
- 자식 엔티티의 위치와 방향
- 콜라이더와 같은 물리 컴포넌트의 위치
- 파티클이나 이펙트의 방향
- 엔티티의 로컬 좌표 기준
- 포탈의 기준점과 회전 방향
반면 SpriteRendererComponent의 FlipX는 스프라이트를 화면에 렌더링할 때 이미지의 좌우 방향만 반전합니다.
즉, 다음과 같은 특징이 있습니다.
- 엔티티의 Transform 위치와 스케일은 그대로 유지됩니다.
- 자식 엔티티의 Transform에는 영향을 주지 않습니다.
- 콜라이더나 다른 컴포넌트의 위치와 방향도 변경하지 않습니다.
- 단순히 캐릭터나 포탈 이미지의 방향만 바꿀 때 적합합니다.
따라서 이미지 자체만 좌우반전하려는 목적이라면 SpriteRendererComponent의 FlipX를 사용하는 것이 더 안전하고 의도에도 잘 맞습니다.
반대로 엔티티 전체를 좌우반전해야 하거나, 자식 오브젝트와 콜라이더까지 함께 반전해야 한다면 TransformComponent의 Scale.X = -1을 사용할 수 있습니다.
정리하면 다음과 같습니다.
이미지만 좌우반전 → SpriteRendererComponent.FlipX
엔티티 전체를 좌우반전 → TransformComponent.Scale.X = -1
포탈처럼 이미지 방향만 바꾸고 다른 컴포넌트의 위치나 동작은 유지해야 하는 경우에는 FlipX를 사용하는 것을 권장합니다.
참고 자료: Spring Boot 공식 문서
MovementComponent 가 nil 로 나옵니다.
0
127
1
공유 파일
0
121
1
몬스터 포탈 생성 오류
0
293
1
상점등록X 본인만 사용하고 싶을때
0
344
1
노션 페이지가 어디에 있나요??
2
447
1
선생님 도와주세요
1
614
2
제 다리는 에러가..
0
271
0
궁금한 것이 있습니당
0
397
1
로블록스 심화 과정
0
314
1

