[Unity] 2D 무한 맵 생성

2025. 2. 24. 15:40·Game Engine/Unity
using System.Collections;
using System.Collections.Generic;
using Unity.Collections.LowLevel.Unsafe;
using UnityEditor.SceneManagement;
using UnityEngine;

public class Level : MonoBehaviour
{
    public int numBgCount = 2; // 배경화면 오브젝트만큼 생성
    public int obstacleCount = 0;
    public Vector3 ObstacleLastPosition = Vector3.zero;

    public float bgSpeed = 1f;
    public float bgTime =0f;
    BoxCollider2D collider;
    private void Awake()
    {
        collider = GetComponent<BoxCollider2D>();
    }
    public void Update()
    {

        if ((bgTime >= 5)) // bgTime이 5이상이면
        {
            bgSpeed += 0.5f; // bground speed 0.5  상승
            bgTime = 0;
        }
        
        transform.position += Vector3.left * bgSpeed * Time.deltaTime;
        bgTime += 1f *Time.deltaTime;

    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
       
        if (collision.CompareTag("Looper"))
        {
           
            float widthOfBgObject = collider.size.x; // 배경화면 가로 길이
            Vector3 pos = collider.transform.position; // 현재 위치
            pos.x += widthOfBgObject * numBgCount; // 가로길이 만큼 이동
            collider.transform.position = pos; // pos 이동한 위치를 collision 위치로 삽입( 반영)
            return;
        }

    }

  
}

맨 왼쪽에 루퍼를 놓고 루퍼에 닿으면 맵의 끝으로 이동하여 무한히 연결되는 맵을 만들었다. 

 

먼저 (맵)타일에 스크립트를 달아놓고 먼저 Collider를 초기화 시킨다.

Trigger충돌이 나면 collision 정보로 Tag가 Looper인지 확인 후 

Looper가 맞다면 collider.size.x로 widthOfBgObject (타일 너비 변수)를 초기화시킨다.

Vector3 pos = collider.transform.position으로 현재 위치로 초기화 시키고

pos.x+=widthOfBgObject*bgcount; // bgcount만큼 뒤로 보냄 나는 백그라운드맵이 2개여서 2로 설정함

pos를 다시 collider에 담아준다.

 

여기서 맵은 카메라보다 크거나 같아야한다

 

 

 

루퍼에 닿으면 맵이 뒤로 가는 모습이다

'Game Engine > Unity' 카테고리의 다른 글

[Unity] Tutorial code  (0) 2025.02.26
코루틴 사용법  (0) 2025.02.25
[Unity] 트러블슈팅  (0) 2025.02.20
[Unity] 플레이어를 따라오는 카메라 구현  (0) 2025.02.19
[Unity] 이동구현  (0) 2025.02.18
'Game Engine/Unity' 카테고리의 다른 글
  • [Unity] Tutorial code
  • 코루틴 사용법
  • [Unity] 트러블슈팅
  • [Unity] 플레이어를 따라오는 카메라 구현
Xenawn
Xenawn
제넌 게임개발 블로그
  • Xenawn
    Xenawn
    Xenawn
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Language (24)
        • C++ (4)
        • C# (20)
      • Game Engine (32)
        • Unity (19)
        • Unity API (1)
        • Game Project (12)
      • Git (2)
      • Algorithm (9)
        • BOJ [C++] (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    POTION
    문자열 보간
    1181
    FizzBuzz
    유니티
    headbob
    스파르타내일배움캠프 #스파르타내일배움캠프til
    Unity
    CPP
    배열
    c#
    BOJ
    객체
    string format
    클래스
    포션
    프로퍼티
    리스트
    내일배움캠프
    걸음fps
    백준
    게임개발
    프레임
    fps cam
    C++
    카메라 움직임
    알고리즘
    FPS
    블랙잭
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Xenawn
[Unity] 2D 무한 맵 생성
상단으로

티스토리툴바