1. DataAsset 중심 구조
여러 개의 건물 DataAsset을 배열로 관리하였다.
TArray<TObjectPtr<UKOBuildingDataAsset>> BuildOptions;
그리고 입력으로 들어온 인덱스에 따라 해당 DataAsset을 선택한다.
BuildOptions[0] = DA_House;
BuildOptions[1] = DA_Wall;
BuildOptions[2] = DA_Tower;
키 입력이나 UI 버튼에서는 인덱스만 넘겨주고, 실제 건설 시작은 기존 함수를 그대로 사용한다.
StartBuildModeWithData(BuildOptions[BuildIndex]);
선택된 DataAsset만 바뀌고, 고스트 생성과 설치 로직은 그대로 재사용된다.
2. BaseBuilding 구조
나중에 설치 비용, 체력, 생산량, 공격력 같은 값이 추가되면 스폰된 건물도 자기 DataAsset을 알고 있어야 하기 때문에
공통 부모 건물 클래스를 만들었다.
UPROPERTY(VisibleInstanceOnly, BlueprintReadOnly, Category = "Building")
TObjectPtr<UKOBuildingDataAsset> BuildingData;
건물을 스폰한 뒤에는 선택된 DataAsset을 건물에 넘겨준다.
NewBuilding->InitializeBuildingData(CurrentBuildingData);
정리
- 기존에는 DefaultBuildingData 하나로 단일 건물만 테스트했다.
- 여러 건물을 지원하기 위해 BuildOptions 배열 구조를 사용했다.
- 건물 정보는 DataAsset 중심으로 관리한다.
- 스폰된 건물은 자기 DataAsset을 참조할 수 있어야 한다.
- BuildComponent는 건설 과정만 담당하고, 건물 기능은 건물 클래스나 Component로 분리한다.
- 입력 방식은 이벤트 그래프에서 IMC 기반 구조로 옮길 예정이다.
'Unreal 최종 팀프로젝트' 카테고리의 다른 글
| [TIL] 건설 회전 기능 | 최종 팀프로젝트 (0) | 2026.06.02 |
|---|---|
| [TIL] UI 입력 흐름 | 최종 팀프로젝트 (0) | 2026.06.01 |
| [TIL] 설비 및 아이템 데이터화 | 최종 팀프로젝트 (0) | 2026.05.22 |
| [TIL] 그리드 기반 건물 파괴 | 최종 팀프로젝트 (0) | 2026.05.20 |
| [TIL] 그리드 기반 건설 시스템 | 최종 팀프로젝트 (0) | 2026.05.19 |