728x90
728x90
이번 포스팅에서는 적 스폰 시스템을 구현해, 일정 시간 간격으로 적이 등장하게 만들어 보겠습니다. 이를 통해 게임의 난이도가 점진적으로 올라가며, 플레이어가 계속해서 새로운 적을 상대하는 긴장감 있는 경험을 제공할 수 있습니다.
1. 스폰 포인트 설정
먼저, 적이 등장할 위치를 정해주는 스폰 포인트를 설정합니다. 다양한 위치에서 적이 등장하도록 맵의 여러 위치에 스폰 포인트를 배치할 예정입니다.
1.1 스폰 포인트 오브젝트 생성
- Hierarchy 창에서 Empty Object를 생성하고 이름을 SpawnPoint로 변경합니다.
- SpawnPoint의 위치를 플레이어가 접근하기 어려운 맵의 가장자리나 코너에 배치합니다.
- 원하는 만큼 SpawnPoint를 복제하여 여러 개를 생성하고 맵의 다양한 위치에 배치합니다.
- 각 SpawnPoint를 보기 쉽게 하려면 Gizmo 색상을 변경하거나, Sphere Collider와 같은 도형을 추가해도 좋습니다.
2. 적 스폰 매니저 스크립트 작성
적 스폰을 관리할 SpawnManager 스크립트를 작성하여, 일정 시간 간격으로 랜덤한 위치에서 적이 생성되도록 설정합니다.
2.1 SpawnManager 스크립트 작성
- Assets > Scripts 폴더에서 SpawnManager.cs 스크립트를 생성하고, 다음과 같이 작성합니다:
using UnityEngine;
public class SpawnManager : MonoBehaviour
{
public GameObject enemyPrefab; // 생성할 적 프리팹
public Transform[] spawnPoints; // 적이 생성될 위치들
public float spawnInterval = 3f; // 적이 생성되는 간격 (초)
void Start()
{
InvokeRepeating("SpawnEnemy", spawnInterval, spawnInterval);
}
void SpawnEnemy()
{
int spawnIndex = Random.Range(0, spawnPoints.Length); // 랜덤한 스폰 포인트 선택
Instantiate(enemyPrefab, spawnPoints[spawnIndex].position, Quaternion.identity);
}
}
2.2 SpawnManager 설정
- SpawnManager 스크립트를 빈 오브젝트에 추가하고, 이름을 SpawnManager로 변경합니다.
- enemyPrefab 필드에 생성할 Enemy 프리팹을 연결합니다.
- spawnPoints 배열에 앞서 만든 SpawnPoint 오브젝트들을 드래그하여 추가합니다.
- spawnInterval 값을 원하는 대로 조정합니다. (예: 3f이면 3초마다 적이 스폰됩니다.)
3. 시간에 따라 난이도 증가 시스템 추가
게임이 진행될수록 점점 더 많은 적이 등장하도록 하여, 시간이 지나면서 게임 난이도가 높아지게 만들어 보겠습니다.
3.1 난이도 증가 기능 추가
SpawnManager 스크립트를 수정하여 시간이 지남에 따라 스폰 간격을 줄여 난이도를 높이도록 합니다.
public float difficultyIncreaseInterval = 10f; // 난이도 상승 간격 (초)
public float minSpawnInterval = 1f; // 최소 스폰 간격
void Start()
{
InvokeRepeating("SpawnEnemy", spawnInterval, spawnInterval);
InvokeRepeating("IncreaseDifficulty", difficultyIncreaseInterval, difficultyIncreaseInterval);
}
void IncreaseDifficulty()
{
if (spawnInterval > minSpawnInterval)
{
spawnInterval -= 0.5f; // 스폰 간격 감소
}
}
- difficultyIncreaseInterval을 설정하여 일정 시간마다 스폰 간격이 줄어들도록 합니다.
- minSpawnInterval을 설정하여 난이도 증가가 너무 빠르지 않도록 합니다.
4. 테스트 및 조정
- Play 모드로 실행
- 적이 일정한 간격으로 스폰되는지 확인합니다.
- 시간이 지날수록 스폰 속도가 빨라지며, 적이 더 자주 등장하는지 확인합니다.
- 난이도 조정
- spawnInterval, difficultyIncreaseInterval 값 등을 조정하여 난이도를 적절히 조절해 줍니다.
5. 정리 및 다음 단계 예고
이번 포스팅에서는 적 스폰 시스템을 구현하여, 일정 시간마다 새로운 적이 맵에 등장하도록 설정했습니다. 이렇게 만들어진 스폰 시스템을 통해 게임의 긴장감을 한층 더 높일 수 있었습니다. 다음 포스팅에서는 플레이어와 적의 체력 및 게임 오버 조건을 추가해, 게임의 구조를 더욱 완성형으로 다듬어가겠습니다.
조금씩 게임의 모습이 완성되고 있으니, 다음 포스팅에서 다시 함께 진행해 봅시다!
728x90
'유니티 > 탑 다운 슈팅 게임 만들기' 카테고리의 다른 글
탑다운 슈팅 게임 만들기 #6 – 게임 클리어 목표 및 UI 최종 정리 (0) | 2024.11.13 |
---|---|
탑다운 슈팅 게임 만들기 #5 – 플레이어와 적의 체력 및 게임 오버 구현 (1) | 2024.11.12 |
탑다운 슈팅 게임 만들기 #3 – 적 캐릭터 및 기본 AI 구현 (2) | 2024.11.10 |
탑다운 슈팅 게임 만들기 #2 – 플레이어 슈팅 메커니즘 구현하기 (1) | 2024.11.09 |
탑다운 슈팅 게임 만들기 #1 – 프로젝트 설정 및 플레이어 컨트롤 구현 (2) | 2024.11.08 |