📌
학습 내용
1. 몬스터 생성 규칙 확장하기
1. 몬스터 생성 규칙 확장하기
✅ 발전 과정
처음에는 개별 몬스터마다 스폰 위치를 지정해줄 수 있도록 했다. 이 경우 스폰 위치는 배열로 저장되고, 몬스터 생성 수만큼 for문을 반복해 저장된 위치로 보내주었다. 하지만 몬스터는 동적 생성을 하면서 개별 위치 정보는 인스펙터에서 할당해줘야 하는 점이 마음에 걸렸다. 그래서 몬스터의 개별 위치 정보를 데이터 시트에 추가하려고 했지만 이 역시 생성할 몬스터가 너무 많아질 경우를 생각하니 효율이 좋지 않다고 생각했다.
결국 생성 규칙을 정해 모든 몬스터가 정해진 규칙대로 생성되도록 만들었다! 랜덤으로 하는 게 쉽지만 똑같은 위치에 겹쳐서 생성되는 문제를 피하기 위해 그리드(격자)에 순차적으로 생성되도록 했다.
private Vector3 GetGridPosition(int index, int count)
{
int gridSize = Mathf.CeilToInt(Mathf.Sqrt(count));
float spacing = 3f; // 간격 범위
int row = index / gridSize;
int col = index % gridSize;
float x = (col - gridSize / 2) * spacing;
float z = (row - gridSize / 2) * spacing;
float y = 0;
return new Vector3(x, y, z);
}
격자(grid) 형태의 위치 계산은 예전 스파르타 사전 캠프에서 했었던 카드 뒤집기 게임을 참고했다. 코드를 하나씩 살펴보자.
나라가 망했다는 충격적인 소식을 들었다.
평화롭게 TIL을 쓸 정신 상태가 아니니까 내일 살펴보자.
✅ 생각해보기
- 격자판에서 랜덤 위치로 생성되는 방법
- 격자판에서 지정 위치로 생성되는 방법
✅ 내일 고치기
- Potal에서 UIShowDungeon 클래스 동적 생성하기
- 그 외의 최적화
'[내배캠] 본 캠프 개발 학습 > 매일매일 쓰는 TIL' 카테고리의 다른 글
12월 5일 목요일 본 캠프 개발 일지 (3) | 2024.12.05 |
---|---|
12월 4일 수요일 본 캠프 개발 일지 (0) | 2024.12.04 |
12월 2일 월요일 본 캠프 개발 일지 (1) | 2024.12.02 |
11월 29일 금요일 본 캠프 개발 일지 (3) | 2024.11.29 |
11월 28일 목요일 본 캠프 개발 일지 (5) | 2024.11.28 |