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
'GameDevelop > Unity팀프로젝트' 카테고리의 다른 글
Unity 2D 게임 개발일지 – 카메라 전환 & 맵 이동 + 트러블슈팅 (1) | 2025.07.03 |
---|---|
Unity 2D 게임 개발 일지 – Cinemachine 카메라 세팅 & 맵 경계 제한 (0) | 2025.07.02 |
[트러블슈팅] 유니티 2D 게임에서 플레이어가 벽에 붙는 문제 해결법 (0) | 2025.06.30 |
Re-Call Unity 3D 팀 프로젝트 회고 (0) | 2025.06.02 |
[Unity] 몬스터 죽을 때 아이템 드롭 자연스럽게 배치하기 (0) | 2025.06.01 |