2D 런게임을 하다보면 배경이 무한대로 반복되는 장면을 본적이 있다.
그런 배경을 구현하는 방법은 한 배경 이미지 2개를 만들어 일정 거리만큼 움직이면
반대쪽 배경 끝으로 이어 붙히는 방법을 많이 사용한다.
기본적으로 배경 이미지는 폭이 존재하고 왼쪽으로 계속 움직인다.
이미지의 폭은 Box Collider 2D로 알 수 있으며, Collider의 x사이가 폭이 된다.
따라서,
Width = Getcomponent<BoxCollider2D>().size.x; 라 할 수 있다.

왼쪽으로 계속 이동하던 배경이 폭만큼 이동한다면, 배경 하나가 완전히 이동한 것이라 볼수있다.
따라서 완전히 이동한 배경을 따라오는 뒷배경 의 폭 끝쪽으로 이동시켜 다시 연결해준다.
이동할 배경은 전체 폭의 2배만큼을 이동하면 된다.
그리고 배경은 다시 왼쪽으로 계속 이동하여 무한루프가 발생한다.
따라서
Vector3 vOffset = new vector3(width * 2f, 0, 0);
this.transform.postion = this.transform.position + vOffset;
이라 할 수 있다.
2D라 Vector2를 사용해도 되지만,
뒤에 transform.position이 Vector3의 형태이기 때문에
형변환을 하여야해서 그냥 Vector3를 사용하였다.

참고로 Vector2를 Vector3에 할당하면 z값이 0인 Vector3로 자동 형변환 되어 할당된다.
'유니티' 카테고리의 다른 글
유니티) 체력바 구현하기 (0) | 2023.04.28 |
---|---|
유니티) 스프라이트 시트 (0) | 2023.04.28 |
유니티) 오브젝트 복제 (0) | 2023.04.28 |
GetAxis() 메서드 (0) | 2023.04.27 |
유니티) 충돌 이벤트 (0) | 2023.04.27 |