C#/게임 제작 + TIL

Unity Scrolling Background - 무한 배경

Toa_ 2025. 2. 19. 15:00

 

만약 무한하게 이어지는 배경을 만들려면 어떻게 해야 할까?

리소스는 한정돼 있기 때문에 끝도 없이 이어지는 png 파일을 이어 붙이는 방법은 좋지 못할 것이다.

이때 만약 배경에 큰 변화가 필요 없는 조건이라면 간단하게 사용 가능한 방법이 존재한다.

 


 

간단하게 유니티 내에 기본적으로 존재하는 RawImage 컴포넌트 와 wrap mode의 repeat를 사용하면 일정한 패턴의 이미지의 경우 무한히 이어지면서 보이는 효과를 줄 수 있다. 

 

 

1. 이미지 파일을 가져온 뒤 Wrap Mode를 Repeat로 변경해 준다.

 

 

 

 

 

2. 적용할 UI 또는 이미지의 Imgae 컴포넌트를 Raw Image로 변경.

 

 

 

 

 

 

3. 스크립트를 통해 원하는 정도의 움직임을 구현한다.

 

public class ScrollingBackground : MonoBehaviour
{
    [SerializeField] private RawImage _img;
    public float x, y;// x, y축으로 얼마나 움직일지 결정.

    void Update()
    {
        _img.uvRect = new Rect(_img.uvRect.position + new Vector2(_x, _y) * Time.deltaTime, _img.uvRect.size);
    }
}

 

 

이렇게 한 뒤 원하는 만큼의 속도감을 x, y에 대입한다면 무한하게 이어지며 움직이는 배경을 구현할 수 있다.