GameDevelop/Unity팀프로젝트

Unity 2D 게임 개발 일지 - 웨이브 스폰, 맵 클리어, 점프 오브젝트 구현

도도돋치 2025. 7. 1. 20:45
Contents 접기
728x90

오늘은 유니티 2D 게임에서 적 웨이브 스폰, 맵 클리어 처리, 그리고 플레이어를 점프시키는 오브젝트까지 여러 기능을 구현했다.

 

웨이브 스폰 시스템 개선

WaveSpawner를 만들어서 플레이어가 특정 구역에 들어가면 순차적으로 적들을 스폰하도록 했다.

 

✅ 주요 기능

  • 여러 웨이브를 순서대로 생성
  • 각 웨이브 클리어 후 딜레이를 두고 다음 웨이브 시작
  • 마지막 웨이브 클리어 시 맵 클리어 처리

 

맵 클리어 처리

마지막 웨이브를 끝내면 OnAllWavesCleared() 메서드를 호출하여 클리어를 처리하도록 구현했다.

 

✅ 주요 기능

  • 맵 클리어 로그 출력
  • 현재 씬 이름 가져오기
  • 씬 다시 로드하여 상태 초기화
private void OnAllWavesCleared()
{
    Debug.Log("맵 클리어! 테스트용으로 현재씬 다시 로드");

    string currentSceneName = SceneManager.GetActiveScene().name;
    SceneManager.LoadScene(currentSceneName);
}

 

이런 방식으로 마지막 웨이브 종료시에는 맵이 클리어 되는 조건을 추가했다.

또한 테스트를 위해 현재맵이 재실행되도록 하였다. 

 

 

플레이어 점프 오브젝트 제작

플레이어가 닿으면 위로 튕겨 오르는 JumpPad를 생성하였다.

 

✅ 주요 기능

  • OnTriggerEnter2D()로 충돌 감지
  • Rigidbody2D에 위 방향 힘을 가함
  • 원하는 점프 세기를 인스펙터에서 조절 가능
[SerializeField] private float jumpForce = 10f;

private void OnTriggerEnter2D(Collider2D other)
{
    if (other.CompareTag("Player"))
    {
        Rigidbody2D rb = other.GetComponent<Rigidbody2D>();
        if (rb != null)
        {
            rb.velocity = new Vector2(rb.velocity.x, 0f);
            rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
        }
    }
}

 

✅ 사용 방법

  • 빈 오브젝트에 BoxCollider2D(Trigger) 추가
  • JumpPad 스크립트 부착
  • JumpForce 값 조절
728x90