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. 스크립트 할당

두 이미지에 스크립트를 추가하고 이동속도와 롤링되는 지점을 설정합니다.