Unity
유니티 배경 무한반복, 배경 스크롤링(Background Scrolling)
여르므
2024. 9. 7. 16:14

배경이 왼쪽으로 계속 이동하다가 특정 위치에 도달하면 오른쪽으로 다시 이동시키는 방법입니다.
배경이 끝없이 이어지는 효과를 줄 수 있습니다.
1. 배경이미지 배치
배경 이미지 두장을 나란히 배치합니다.
저는 이미지1(0,0,0), 이미지2(19.2,0,0)에 배치했습니다.

두 번째 이미지의 x좌표가 배경이 무한 반복되는 지점이 됩니다!!
2. Background 스크립트 작성
public class Background : MonoBehaviour
{
public float speed = 5f; // 이동 속도
public float size = 19.2f; // 두번째 이미지의 x 좌표
// Update is called once per frame
void Update()
{
// 이미지를 좌측으로 흐르게 한다.
transform.Translate(Vector3.left * speed * Time.deltaTime);
if (transform.position.x <-size)
{
// 이미지의 x position을 현재 위치에서 (size * 2)를 더한 지점에 배치한다.
transform.Translate(new Vector3(size * 2, 0, 0));
}
}
}
배경이 왼쪽으로 계속 이동하다가 x 좌표가 -19.2보다 더 왼쪽으로 가면
size * 2 = 38.4를 더해서 새로운 좌표인 -19.2 + 38.4 = 19.2 지점으로 배치합니다.
🚨 주의사항
transform.Translate()
절대 좌표값으로 이동시키는 게 아니라 현재 위치를 기준으로 이동량을 더해주는 함수
3. 스크립트 할당
두 이미지에 스크립트를 추가하고 이동속도와 롤링되는 지점을 설정합니다.
