기존에 1개의 스폰포인트에서 인간이 생성되도록 설계했는데, 스테이지에 스폰포인트가 추가되며 로직을 확장성 있게 수정하였다.

public class StageManager : SingletonBase<StageManager>
{
public List<Transform> StartPointList { get; private set; }
// 스테이지의 시작점과 종료지점 캐싱
private void SetPointInfo()
{
StartPointList = new List<Transform>();
GameObject[] spawnPoints = GameObject.FindGameObjectsWithTag("HumanSpawnPoint");
if (spawnPoints == null || spawnPoints.Length == 0)
{
Debug.LogAssertion("Startpoints not found");
return;
}
foreach (GameObject point in spawnPoints)
{
StartPointList.Add(point.transform);
}
}
}
public class HumanSpawner : MonoBehaviour
{
private List<Transform> _spawnPoints = new List<Transform>();
private void Start()
{
_spawnPoints = StageManager.Instance.StartPointList;
}
private void SpawnHuman(int waveIdx, int humanId)
{
int spawnPointCount = _spawnPoints.Count;
for (int i = 0; i < spawnPointCount; i++)
{
Human human = PoolManager.Instance.SpawnFromPool<Human>(humanType, _spawnPoints[i].transform.position, quaternion.identity);
human.controller.SpawnedPointIdx = i;
human.SpawnedWaveIdx = waveIdx;
}
}
}'내일배움캠프 > TIL' 카테고리의 다른 글
| [내배캠][Unity6기][TIL] 풀 반환 오류 트러블슈팅 (0) | 2025.01.09 |
|---|---|
| [내배캠][Unity6기][TIL] 코루틴 중지 트러블슈팅 (0) | 2025.01.08 |
| [내배캠][Unity6기][TIL] ObjectDisposedException 트러블슈팅 (0) | 2025.01.06 |
| [내배캠][Unity6기][TIL] 힐러 타입 인간 추가 (0) | 2025.01.03 |
| [내배캠][Unity6기][TIL] 데이터 로드 리팩토링 (2) (0) | 2024.12.31 |