Trash Flight 만들기(4) – 움직이는 배경만들기

앞서 배경 이미지를 적용하여 배경을 구현하였고, 적용된 배경이 끝없이 움직이도록 설정을 해야 게임처럼 보일 수 있다. 움직이는 배경을 만들 때 배경을 위에서 아래로 내려오도록 구현 할 것이며, 하나의 배경으로는 구현이 힘들기에 두개의 배경을 내려오도록 설정하여 배경이 끊김없이 자연스레 내려오도록 구현을 해야 한다.

움직이는 배경만들기

1. 배경 이미지 복제하기

  • 배경 오브젝트에서 마우스 오른쪽 버튼을 눌러 Duplicate를 눌러 복제를 한다.
  • 배경 오브젝트 2개에 대한 이름을 각각 Background1과 Background2로 변경한다.

2. 배경 이미지의 위치 변경하기

  • 배경1과 배경2를 각각 눌러 Inspector에서 Transform항목에 점 3개의 버튼을 눌러 Reset을 누른다.
  • 배경 이미지를 움직이기 위해서는 툴바에서 Move tool을 눌러서 움직일 수 있다.
  • 배경2의 위치를 y값을 10칸 올라간 10의 위치로 변경한다.
  • Inspector에서 Transform -> Posion의 값을 수정한다. X -> 0, Y -> 10
  • X -> 0, Y -> 10으로 변경이 되었는지 확인한다.

3. 배경에 대한 스크립트 추가하기

  • Scripts폴더에 생성한 Background 스크립트 파일을 드래그하여 배경1과 배경2의 Inspector 위치에 드래그한다.
  • 배경1(Background1)과 배경2(Background2)의 배경에 스크립트파일이 추가 되었는지 확인한다.

4. 배경에 대한 스크립트 작성하기

  • 스크립트를 작성하기 위해 Inspector -> Background(script) 항목에서 스크립트를 마우스의 왼쪽 버튼을 더블 클릭하여 실행한다.
  • 만약 실행 했을 때 비주얼 스튜디오코드가 아닌 다른 프로그램이 실행된다면 앞의 학습한 유니티 설정하기를 확인 후 설정을 해두면 된다.

5. 배경이 위에서 아래로 내려오는 스크립트 작성하기

  • Background의 스크립트를 비주얼 스튜디오코드에서 실행하게 되면 아래와 같이 화면이 나온다.
  • 스크립트 내용 중 public class 의 이름이 Background 인지 확인한다.
  • 배경 스크립트 중 void Start()의 항목은 필요 없기에 삭제를 한다.
  • 다음과 같이 스크립트를 작성한다.
    • 배경의 움직이는 속도는 3으로 설정
    • C#에서 기본 제공하는 Vector3 클래스를 활용하여 객체를 아래로 움직이게 한다.
    • 움직일때는 변수 moveSpeed의 값을 활용
    • Time.deltaTime을 적용하여 어떤 컴퓨터에서도 동일하게 움직일 수 있도록 설정하기.
public class Background : MonoBehaviour
{
    private float moveSpeed = 3f;

    // Update is called once per frame
    void Update()
    {
        transform.position += Vector3.down * moveSpeed * Time.deltaTime;
    }
}
  • 스크립트를 작성 후 File -> Save 또는 컨트롤키 + S 버튼을 눌러 저장한다.

6. 내려온 배경이미지가 다시 위로 올라가는 스크립트 작성하기

  • 실행버튼을 눌렀을 때 1번까지 내려간 배경이 2번 배경으로 다시 올라와서 다시 내려가도록 스크립트를 추가 작성한다.
  • 작성된 배경 스크립트에서 아래와 같이 추가한다.
    • 만약 배경의 위치가 -10보다 작다면, 위치를 변경하여 새로운 위치로 이동한다. X값=0, Y값=20(10 x 2), Z값=0
 void Update()
    {
        transform.position += Vector3.down * moveSpeed * Time.deltaTime;
        if (transform.position.y < -10) {
            transform.position += new Vector3(0, 20f, 0);
        }
    }

Loading

댓글 남기기