[2021. 07. 15]
어제 컨디션이 너무 안좋아서 유닛 이동 수정이랑 카메라 구현만 했었다.
어제 못한만큼 오늘 속도를 낼 것이다. 일단 휴식을 취하기 전에 오늘 오전에 구현한 것을 정리할려고 한다.
[유닛 세분화]
클래스 계층은
부모: Units (abstract)
자식: Soldier(병사), Tank(탱크), FieldGun(야포)이다.
일단 유니티 상에서 스크립트를 만들어야한다.
▼ UnitData.cs
▼ SpawnManager.cs
▼ UnitHandler.cs
구조는 이렇다. 지구 씬에서 유닛을 구매할 시에 SetSpawnUnitStats함수 안에 구입한 유닛을 인자로 넘겨서 UnitHandler에서 인자로 받은 유닛의 타입에 맞는 데이타를 넘겨줌으로써 구입한 유닛에 스텟이 세팅된다.
추후에 더 넣을 코드는 Purchased 리스트에 구매한 유닛들을 넣어줬다가 월드씬으로 이동할 시에 넘겨주는 것이다.
위의 설명과 같이 두 번째 인자 값은 분대 갯수이다. 그러므로 실제로 월드씬 UI에서 보여지는 병사 숫자는
(인자 x 8) 이다. (12 -> 8로 수정했음)
▼ 성공 사례들 ( ※ 처음에 병사 숫자를 12로 두고 했었어가지고 Personnel이 12 이다)
성공하고나서 이제 오버라이드를 통한 공격함수를 어떻게 짤지 고민 하는 도중에 유닛에 레벨을 안넣어 준 것이 떠올랐다..; 레벨을 부여하고, 인터페이스도 추후에 활용하여서, 병종에 따라 Lv2일 경우 랜덤 확률로 공격 받을 시 반격을 하는 시스템을 넣어야 겠다는 생각이 들었다. 그리고 Lv에 따라 유닛의 스텟 또한 달라져야한다.
if/else if를 사용하면 되겠지만 확장 메서드를 활용해서 구현을하면 연습도 될겸 좋겠다고 생각이 들었다.
[확장 메서드]
위 확장 메서드는 말그대로 연습용이였다. 나중에 if/else if로 바꾸고 적절한 상황에 확장메서드를 위와 같이 한 번 써봐야겠다.
[확장 메서드 수정 글은 이 뒤에 있다. 위에 것은 말 그대로 연습이고 용도에 맞게 추후에 수정하였음.]
'개발 (Game) > (2021) Unity RTS 포트폴리오' 카테고리의 다른 글
[Day 5-1] 확장메서드 수정 + 미니맵 구현 (0) | 2021.07.16 |
---|---|
[Day 4-2] 유닛 공격 구현 완료, 국가 영토 및 점령 시스템 구현 완료 (0) | 2021.07.15 |
[Day3] 카메라 쿼터 뷰 시점 구현 및 유닛 이동 수정 완료 (2) | 2021.07.14 |
[Day 2-2] 유닛 선택을 활용한 유닛 이동 구현 (0) | 2021.07.13 |
[Day 2-1] 유닛 선택 및 맵과 유닛의 상호작용 구현 (0) | 2021.07.13 |