[Unity] T-rex Run (크롬 공룡 게임) 만들기 (2) - 그라운드 스크롤링

Kim Yuhyeon·2023년 4월 20일
0

게임개발

목록 보기
90/135
post-custom-banner

그라운드 스크롤링

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DinoGroundScroller : MonoBehaviour
{
    public SpriteRenderer[] tiles;
    public Sprite[] groundImg;
    public float speed;

    private SpriteRenderer temp;
    
    void Start()
    {
        temp = tiles[0];
    }

    void Update()
    {
        for (int i = 0; i < tiles.Length; i++)
        {
            if (-5 >= tiles[i].transform.position.x)
            {
                for (int q = 0; q < tiles.Length; q++)
                {
                    if (temp.transform.position.x < tiles[q].transform.position.x)
                        temp = tiles[q];
                }

                tiles[i].transform.position = new Vector2(temp.transform.position.x + 1, -0.3f);
                tiles[i].sprite = groundImg[Random.Range(0, groundImg.Length)];
            }
        }
        for (int i = 0; i < tiles.Length; i++)
        {
            tiles[i].transform.Translate(new Vector2(-1, 0) * Time.deltaTime * speed);
        }
    }
}
  • 변수

    • tiles : 배경 스크롤링에 사용될 타일의 SpriteRenderer 배열
    • groundImg : 배경 스크롤링에 사용될 Sprite 배열
    • speed : 배경 스크롤링 속도를 제어하기 위한 변수
  • 흐름

    • Start()
      tiles 배열의 첫 번째 원소를 temp 변수에 할당합니다.

    • Update()
      tiles 배열의 각 원소에 대해 다음을 수행합니다.

      • 현재 타일이 왼쪽 화면 밖으로 이동했는지 확인합니다.
      • 만약 타일이 화면 밖으로 이동했다면, temp 변수를 사용하여 화면 에서 가장 오른쪽에 있는 타일을 찾습니다.
      • 그리고 현재 타일을 오른쪽에 위치시키고, 새로운 Sprite 이미지를 할당합니다.
      • 마지막으로, 모든 타일이 왼쪽으로 이동하도록 Translate() 함수를 사용하여 위치를 변경합니다. 이때, speed 변수가 사용됩니다.

결과

post-custom-banner

0개의 댓글