목차
데이터매니저, RangeCheckHelper
어제 계획대로 데이터 매니저를 구현하고, 몬스터 리파인을 할 예정.
데이터 매니저 구현 완료!


현재 스프레드시트에서 json 파일을 생성하지만, 그것을 가공해야할 필요성을 지난번에 느꼈었다.
어제 설계하고 구현하는걸 마무리하지 못했었는데, 오늘 마무리 했다!
DataManager에서 기획 테이블에서 변환한 json 데이터를 훌륭하게 변환한 모습. (왼쪽)
DataManager.Instance.MonsterSkillDataList.GetMonsterSkillDataById(id, out skillData);
와 같은 모습으로 꺼내올 수 있다.
원래는 그냥 바로 데이터를 출력하는 편인데 이번에는 out을 써서 데이터를 받아오고, bool 값을 반환해서 성공, 실패를 판단하도록 했다.
여기의 스킬 데이터를 불러와서 보스몬스터 AI에서 BT를 생성하고 하위 자식들에게 넣어줄때 데이터가 옮게 불러와진 모습!
몬스터 공격 범위 측정 문제
일단 공격 범위 측정 이전에... skillTriggered랑 elapsedTimer이 초기화되는 타이밍이 이상해서 조정하는 시간이 조금 오래 걸렸고... (SkillSelectorNode에서의 Reset 문제인 줄 알았음.)
그러고 나서는 한 스킬만 반복되고, 다른 스킬들은 elapsedTime이 계속 쌓이기만 했다.
나는 스킬을 체크하는 노드로 들어가지 않는 줄 착각해버렸고, (역시나 SkillSelectorNode의 문제인 줄 알았음) 시간 낭비를 엄청나게 해버렸다!

원인
결과적으로 말하자면,
몬스터 detectRange보다 짧은 사정거리 때문에, detectRange 이내로 범위를 좁히지 않아 스킬이 출력되지 않는 상황이었다.
왼쪽 그림을 참고하시면,
하늘색 원은 1f을 반지름으로 가지는 원, 초록색 원은 현재 detectRange(3f)를 나타낸다.
스킬 두개는 2f 혹은 3f로 되어있었는데, 쿨타임은 충족되었지만 attackRange를 충족하지 않아 시전하지 않는 거였다.
스킬 한 개는 팀원 분이 구현했는데, 당시에 skillData에 attackRange가 없어서 하드코딩하셨어서 10f로 되어있어서 얘만 나가고 있었다.
그래서 SkillSelectorNode의 문제일거라고 고민했던 것 같다.
근데 이게 또 힌트가 되어서 알아챌 수 있었다.
근본적인 원인
기획팀이 생각한 거리(m단위)와 실제 유니티에서 개발자들이 거리를 측정하기 위해서 사용하는 단위(float)가 달라서였다.
detectRange는 내가 임의로 넣었었던 거라 적절한 거리였었고,
attackRange는 기획팀에서 m단위로 생각하고 넣었던 거라서 매치가 안되었던 것이다.
해결 1

일단은 위의 그림과 같이 무지개 색으로 1f부터 7f까지 표시한 그림을 보내드렸다.
하지만 이는 다른 애니메이션 sprite를 직접 대입해서 볼 수 없기 때문에 일시적인 해결책이라고 생각했다.
또한 캐릭터가 바뀌면 그때마다 체크를 해야하는데 그때마다 표시를 해주는 것보다는, 기획팀에서 직접 유니티 내부에서 거리를 체크할 수 있는 헬퍼를 구현하면 좋겠다고 생각했다.
해결 2


위와 같이 RangeCheckHelper를 인스펙터에서 조절할 수 있게 만들었다.
그러면 우측과 같이 기즈모를 바로 확인할 수 있다.
주의할점은 Sprite의 Pexel Per Unit을 맞춰야 한다는 점(20으로 통일하기로 되어있다.)과
Color를 선택하게 했더니, 디폴트 alpha값이 0이어서 그 부분을 주의해야한다는 점이다.
기획팀에는 이 사실을 전달했고, 이 사실만 숙지하고 있다면 당장 사용하는데는 문제가 없기에 일단 다른 작업들을 먼저 하다가 돌아와서 수정을 하려고 한다.
기획 팀 브랜치 업데이트 주의사항
원래 기획팀에서 에셋을 넣어줄때 그냥 png와 같은 소스파일들만 담아서 바로 깃으로 넘겨주셨었다.
유니티를 켜지 않고 넘어온거라 각자의 깃 브랜치에서 메타파일을 새로 생성하게 되고, 이 부분은 당연하게도 충돌을 발생시켰다.
일단 지금까지 한 부분들은 각자가 작업한 파트를 살리는 방향으로, 주의해서 머지하기로 했다.
앞으로의 충돌을 방지하기 위해, 기획팀에게 에셋을 추가할 경우 유니티를 열어서 메타파일을 생성시킨 뒤 그것까지 포함해서 푸시해달라고 요청했다.
느낀점
오늘은 뭔가 많이 한 것 같으면서도 안한것 같은 느낌이다.
방향에 따른 좌우반전을 해줘야하는데 그것도 못했고...
애니메이션 해시값 쓰는 걸로 바꾸는 것도..
즉, 전체적으로 퀄리티 체크가 안된 느낌이다.
저녁먹고 플레이어팀과 함께 합치는 과정을 거쳤는데, 한시간 정도만에 합칠 수 있어서 다행이었다.
meta 파일은 정말.. 하.. 할많하않
내일 학습 할 것은 무엇인지
일단 오늘 못한 것들,
좌우반전, 애니메이션 해시값 같은 잡일도 해야하고
몬스터 리파인을 전체적으로 해봐야할것 같다.
(셔플도 지금 뭔가 고장나 보일때가 있는 것 같다.)
'부트캠프 > 본캠프' 카테고리의 다른 글
| [내일배움캠프_2025SEP19] OutCry 1차 프로토타입 QA 준비 완료 (0) | 2025.09.19 |
|---|---|
| [내일배움캠프_2025SEP18] 쿨다운 타이머, Stun과 Hit, 잘못된 기즈모 헬퍼... (0) | 2025.09.18 |
| [내일배움캠프_2025SEP16] 1차 모의면접, DataManager 및 Data 관련 정립 (0) | 2025.09.16 |
| [내일배움캠프_2025SEP15] 스킬 구현 시작, 레이어비트마스크 (0) | 2025.09.15 |
| [내일배움캠프_2025SEP14] BT 구현 시작, 코드 리뷰 가능할까...? (0) | 2025.09.14 |