DevCamp 회고 - 8 (정리)

이준호·2024년 7월 5일
0
post-custom-banner

📌 DevCamp 회고



📌 Done - 24.04.29 (Check List)

  • 모바일에서 영혼구 소환 안 됨.
  • 던전 보상 2개로 추가.
  • 던전 도전 팝업 메인 보상 아이콘 연결
  • 어빌리티 던전 메인 보상 수치 조정
  • 오프라인 영혼구 카운트로
  • 영혼구 AddGauge 100 수정. (CSV 파일 업데이트) (플레이어 레벨업시 AddGauge만)
  • 스테이지 증가 치트키.
  • 장착 가능 동료 있다면 레드닷 표기.
  • 던전 바텀 버튼 열리는 타이밍 수정
  • 동료 닫기 버튼 위치 수정
  • 퀘스트 73 각성석 부족
  • 동료 세부창이 안눌림
  • 펫 공격 축이 기울어짐
  • 영혼구 승급 시 max카운터 늦게 증가
  • 초반 UX/UI 개선
    • 퀘스트 1 백그라운드 / 완료 불 들어오게
    • 로딩씬 터치헤서 스타트
    • 퀘스트 10까지 가이드 아이콘 표기
  • 가장 첫번째 영혼구 소환은 (아라라/토끼/여우) 가 나오도록. (능력치는 랜덤, 이름 및 스프라이트만 고정)
    • 소환 이후 동료 장착 퀘스트 추가.
  • 소환 확률 수정.
  • 업그레이드 이펙트 풀링











📌 Organize

➔ 2024.04.29 (월)

(자동 스킬 사용, 1 ~ 10 퀘스트 가이드 라인 디테일 작업, 첫번째 단조 소환 셋팅, 동료 아이템 장착 퀘스트, 풀링 오브젝트 묶음, 자동 보스도전 / 퀘스트 수정, 영혼구 게이지 부족 메세지, 다이아 수치 볼드)

자동 스킬사용을 사용할 때, 마나가 없어서 스킬을 사용하지 못하고 있는데 쿨타임이 돌아감

  • SkillManager.cs 의 SkillTimer코루틴 메서드에서 if (isCooldownRunning) 안에 스킬 사용 조건을 검사하고 스킬을 사용 하는 PlayerManager.instance.UseSkill(slot)을 부르는데, 이 UseSkill이 스킬을 사용했는지에 대한 bool값을 return하는 메서드였다. (마나가 없어서 스킬을 사용하지 못하면 false, 사용하면 true) (UseSjukk -> CallSkill -> CallActiveSkill -> Call Single or Multiple Skill -> SubstractMP 를 통해 마나 확인) 그리하여 UseSkill(slot) 메서드를 if문으로 묶어서 정상으로 스킬을 사용했을 시에만 쿨타임이 돌아가도록 수정하였다.



First Quest Guide Line

  • QuestManager.cs 에 bool 변수/프로퍼티인 isFirstQuest 선언.
    Load() 메서드에서 if (id == "init") 세이브 파일이 없는 최초 플레이 일 때, isFirstQuest = false 할당. 후 처음 퀘스트 백그라운드 처리를 위한 ui.FirstQuestUISetting 메서드 작성.
    그 밑 init이 아닌 경우는 true 할당.

  • UIQuestBar.cs 의 FirstQuestUISettung 메서드 -> 백그라운드와 퀘스트창의 반짝임의 효과를 켜줌.
    FirstQuestSet() 메서드 -> 현재 퀘스트를 완료처리를 하고 TryClearCurrentQuest 메서드를 실행하여 현재 퀘스트 완료 여부에 따른 보상 처리
    isFirstQuest 변수를 true로 할당하여 바꿔주고
    백그라운드 UI를 꺼주는 메서드.
    그 후 클리어 버튼을 누를 때 실행되는 TryClearQuest 메서드에 if문으로 isFirstQuest 가 false 인 경우 FirstQuestSet() 메서드를 실행하고 return




1 ~ 10 Quest Guide

  • 퀘스트 10까지는 가이드 아이콘이 상시로 뜨도록 변경.

  • 첫번째 퀘스트 bool값으로 체크 하던것, 현재 퀘스트 인덱스 정보를 가지고 와서 비교하는 것으로 변경.

  • UIQuestBar.cs 에서 현재 퀘스트가 몇 번째 퀘스트인지 int값으로 반환해주는 메서드 작성 -> CurrentQuestIndex() 메서드, 현재 퀘스트의 ID (메인 퀘스트 CSV 시트의 순번/퀘스트 순서) 를 가져와서 Split을 통해 공백을 기준으로 배열로 만들고, 해당 배열의 크기 - 1, (메인 퀘스트 00 이므로, 공백 기준 배열 크기는 3이고 숫자는 가장 마지막 이니 -1 을 하면 숫자의 정보를 얻는다.)을 하여 해당 퀘스트 순서를 얻어 반환하는 메서드 작성.
    TenQuestGuide() 메서드 -> 현재 퀘스트 넘버가 10 이하라면 퀘스트의 가이드를 켜두는 메서드.
    MoveToCurrentQuest() -> 다음 퀘스트로 넘어가는 메서드로, 파라미터로 들어온 타입이 스위치문으로 가기 전에 퀘스트가 10 이하이거나 타입이 단조소환, 스테이지 클리어(둘의 경우는 화면에서 퀘스트바를 가리키는 가이드가 사라지고 새로운 가이드를 켜야하기 때문) 의 경우는 퀘스트바의 가이드를 false 해준다.
    TtyClearQuest() -> 퀘스트 버튼을 클릭 할 때 발동하는 메서드로 bool값으로 최소 퀘스트를 판단하던 조건문을 현재 퀘스트의 인덱스가 == 1 로 비교하는 것으로 불안정한 bool값을 제거.

  • QuestManager.cs 의 TryClearCurrentQuest() -> 퀘스트바의 퀘스트 버튼을 클릭할 때, 현재 퀘스트가 완료되었는지를 bool값을 return 해주는 메서드로, 완료됐을 경우 TenQuestGuide() 메서드를 실행하여 퀘스트 10 이하는 퀘스트 가이드가 계속 가리키고 있도록 처리.




The First Forge Summon Setting

  • 가장 첫번째 영혼구 소환은 (아라라, 토끼, 여우) 가 나오도록. 세부 능력치는 랜덤

  • ColleagueItemGenerator.cs 의 InitFirstForgeItemSetting 메서드 -> 토끼, 아라라, 여우 가 나오도록 등급, 아이템인덱스, 배열넘버, 닉네임 등 해당 스프라이트가 뜨도록 기본 정보를 셋팅해주는 메서드.
    FirstForgeItemSetting 메서드 -> 기존 ItemSettingWork 메서드와 로직은 같지만, 토끼, 아라라, 여우 가 뜨게하기 위한 초반 셋팅(InitFirstForgeItemSetting)을 기반으로 고정 스프라이트 및 능력치는 등급에 따라 랜덤에 나오도록 개조한 메서드.
    GrantCardAbility 메서드 -> 현재 퀘스트 넘버가 6일 경우 (최초 단조 소환 퀘스트) FirstForgeItemSetting 메서드를 실행하도록 수정.




Colleague Item Equip Quest Add

  • 동료 어이템 장착 퀘스트 추가. (최초 영혼구 소환다음 퀘스트, 7번째)

  • QuestManager.cs

    • CountColleagueEquip 메서드 -> 단순 CountOnce를 실행하는 메서드 (추후 슬롯별 장착 퀘스트를 고려하여 작성.. 아마)
    • Load 메서드 -> 조건문에 ForgeEquip 장착 퀘스트 추가.
    • StopCounter, InitalizeCounter 메서드 -> 각각 구독 추가.
  • UIColleaguePanel.cs

    • ShowQuestRoot 메서드 -> 동료 장착 퀘스트 타입을 파라미터로 받아서 퀘스트 가이드 표시를 켜주고 위치해준뒤 완료하면 꺼지는 메서서드 (override)
  • UIColleaguePopup.cs

    • onEquipColleagueItem 이벤트 -> 동료 장착 퀘스트 이벤트
    • EquipItem 메서드 -> 아이템을 장착할 때, 발동하는 메서드로 이곳에서 onEquipColleagueItem 이벤트 발동.
  • UIQuestBar.cs

    • MoveCurrentQuest 메서드 -> 스위치문에 케이스 ForgeEquip 동료 장착 일 경우 추가. 창 띄우기 & 가이드 표시 위치 조정.
  • Defines.cs

    • EAchievementType -> ForgeEquip = 61 추가.



Hierarchy Pooling Object Parents

  • 풀링으로 Instantiate 되는 Clone 오브젝트들을 각 타입벼로 묶어두는 부모 오브젝트 생성.

  • MonsterSpawn.cs / EffectManager.cs

    • 각각 private로 GameObject 변수를 선언하고, 프로퍼티를 만들어 get 에 gameObject가 Null 이라면 새로 게임오브젝트를 만들고 이름을 설정해주고 반환해준다.
    • 그 후 각 오브젝트를 Instantiate 하는 부분 뒤에 gameObject.tranform 하여 클론 오브젝트들을 묶어두었다.



Auto Boss Quest Fix

  • 자동 보스도전 토글 누르면 바로 넘어가던 것, 토글을 켜서 체크가 되고 보스도전을 해야 자동도전이 이어지도록 변경.
    자동 보스도전 퀘스트에 자동도전 토글을 눌러 체크가 되면 보스도전으로 가이드가 이동하도록 수정.

  • UIStageBar.cs

    • AutoBossQuestGuide 메서드 -> 현재 퀘스트 정보를 가져와 24번째 (자동보스도전) 퀘스트인지 확인하고, 아니면 return한다.
    • 현재 오토보스 토글이 켜져있다면 퀘스트 가이드를 보스도전 쪽으로 보내고, 아니면 자동보스 도전 토글쪽으로 가이드가 이동하도록 하는 메서드. 버튼을 누르는 이벤트에 사용한다.



Forge Gauge Less Message & Dia Gem Bold

  • 메인 화면 우측 산단 재화 다이아 수치 볼드처리.

  • 영혼구 게이지가 부족할 때, 소환 버튼을 누르면 "영혼구 게이지가 부족합니다" 메세지 띄움.

  • ForgeSystem.cs 의 OpenCard 메서드에 CurrentOpenCound 가 0보다 크지 않으면 MessageUIManager의 ShowForgeLessGauge 메서드를 실행하여 메세지를 띄우도록 처리.
    UpdateForgeGaugeUI 메서드에 gaugeRatio == 포지 게이지가 1과 크거나 같거나 cardCurrentOpenCount 가 0보다 클때만 forgeOpenBtn.interactable을 켜줬는데 주석차리.

profile
No Easy Day
post-custom-banner

0개의 댓글