TowerControlBase - TakeRoot 메서드 구조 변경
ProjectileTowerController, AreaTowerController, RangeTowerController의 부모가 되는 TowerControlBase 클래스에서 TakeRoot 메서드를 abstract로 만들었었다. TowerController 종류마다 할 일이 다를 것 같아서 그렇게 했는데, 정보 세팅 부분은 같고 외형 로딩만 달라서 TakeRoot 메서드를 분리했다.
TakeBody 메서드를 추가해서 TakeBody만 abstract로 만들었다.
/// <summary>
/// Tower 정보 넣어주는 함수
/// </summary>
/// <param name="Info">Tower 데이터</param>
public void TakeRoot(int primaryKey, string name, Vector2 position)
{
// 정보 세팅
Tower = new Tower();
Tower.Init(primaryKey, Preview);
Tower.Sprite = Preview;
TowerStatus = Tower.TowerStatus;
Init();
// 외형 세팅
TakeBody();
}
/// <summary>
/// 외형 로딩
/// </summary>
protected abstract void TakeBody();
TakeRoot를 abstract에서 virtual로 바꾸고 base에서 정보세팅이 이루어지게 할까 했는데, base.TakeRoot를 실행해줄 것에 의존하는 것보다 외형 로딩 기능을 메서드로 빼는 것이 더 타당해 보였다.
'프로젝트 일지 > Unity' 카테고리의 다른 글
[Unity/TIL] Firebase 연동 (4) | 2025.04.29 |
---|---|
[Unity/TIL] 최종 프로젝트 개발 일지 - 버그 수정, UX 개선, 남은 기능 구현 (10) | 2025.04.28 |
[Unity/TIL] 2D 게임에서 특정 오브젝트 바라보도록 회전시키기 (7) | 2025.04.23 |
[Unity/TIL] 2D Sprite 정렬 기준 바꾸기 (Transparency Sort Axis) (9) | 2025.04.22 |
[Unity/TIL] 트러블슈팅 - 비동기 생성 함수 로직 오류 해결 (2) | 2025.04.21 |