본문 바로가기

프로그래머

TIL(Today I Learned) - 76 1. UIManager를 통한 아이템 강화 레벨 업데이트UIManager를 중간 다리로 활용하여 강화된 아이템의 레벨을 여러 슬롯에 일괄적으로 업데이트하는 방법을 학습함.EquipmentUpgradePopupUI에서 강화 완료 시, UIManager.Instance.UpdateItemEnhancement(currentItem)을 호출하여 UIManager가 모든 슬롯을 순회하며 해당 아이템의 레벨을 업데이트하도록 구현.EquipmentInventorySlot에서는 강화된 레벨을 UI에 표시하도록 메서드(UpdateEnhancedLevel)를 구현.2. 슬롯 간의 아이템 일치 비교각 슬롯에서 아이템을 비교할 때, 아이템의 이름을 기준으로 강화된 아이템을 찾는 방법을 구현.슬롯에 있는 아이템과 강화된 아이템.. 더보기
TIL(Today I Learned) - 74 오늘의 TIL (Today I Learned):C#에서 BigInteger 사용법:BigInteger는 정수 계산에서 매우 큰 값을 다룰 수 있는 데이터 타입입니다. Unity와 같은 게임 엔진에서 BigInteger를 사용하면 매우 큰 수의 처리와 계산이 가능하며, 게임의 경험치나 금액처럼 점차적으로 커지는 수치에 유용하다.BigInteger의 주요 특징은 다른 숫자 타입들과 달리 범위가 제한되지 않아, int나 long보다 훨씬 더 큰 값을 저장하고 계산할 수 있다는 점입니다.마나 회복 기능 구현:마나 회복을 위한 로직은 reduceMana(-50)처럼 음수로 값을 전달하여 마나를 증가시킬 수 있다. 이를 통해 플레이어의 마나를 회복시키는 스킬이나 버프를 구현할 수 있다.ParallaxBackgrou.. 더보기
TIL(Today I Learned) - 73 오늘의 TIL (Today I Learned)1. 넉백 처리와 전투 재개 로직넉백이 끝난 후 전투 재개를 자연스럽게 처리하기 위해 ResumeScroll과 StopScrollingRightAfterDuration 로직을 명확히 분리.넉백 상태 관리: isKnockback와 isBattlePaused 플래그를 적절히 조작하여 전투 재개를 부드럽게 구현.넉백 중에도 전투 흐름을 유지할 수 있도록 상태 전환 로직을 개선.2. 몬스터 처치 후 대기 시간 추가몬스터를 처치한 후 일정 시간(5초) 대기하고 다시 전투를 종료하거나 준비 상태로 돌아가는 코드를 작성.PlayerBattle 클래스에 WaitBeforeResumingBattle 코루틴을 추가하여, 전투 종료와 대기 시간을 분리해서 관리.몬스터 처치와 넉백.. 더보기
TIL(Today I Learned) - 69 📌 오늘의 TIL: 프로젝타일과 애니메이션 제어 관련 문제 해결🎯 문제 상황액티브 스킬을 사용했을 때 프로젝타일 발사와 애니메이션 동작을 제어하는 과정에서 문제가 발생.스킬 발동 시 기존 애니메이션이 중단되지 않고 계속 실행됨.프로젝타일 관련 코드와 애니메이션 트리거 간의 충돌로 인해 스킬 효과가 기대대로 적용되지 않음.🔍 문제 원인Animator 상태 충돌:Any State에서 Attack 상태로 전환하는 구조가 애니메이션 동작을 중단하지 않고 중복 실행되도록 함.Animator 트리거 관리 미흡:Animator.ResetTrigger와 Animator.SetTrigger가 적절히 관리되지 않아서 상태가 중복 실행됨.스킬 실행 플래그 부재:스킬 사용 중인지 체크하는 플래그가 없어, 애니메이션이 반.. 더보기
TIL(Today I Learned) - 59 오늘의 TIL (Today I Learned)장비 합성 로직 디버깅합성 로직에서 초기 데이터와 UI가 일치하지 않는 문제를 발견.SetEquipmentData에서 초기 데이터가 제대로 전달되지 않으면 이후 모든 로직에 영향을 미친다는 점을 확인.합성 후 기존 장비 스택 감소 및 결과물 추가 로직이 정확히 동작하도록 수정.UI와 데이터 동기화 문제 해결합성 후 UI가 갱신되지 않는 문제를 InitializeUI 호출로 해결.currentEquipment와 resultEquipmentData의 null 체크를 강화하여 데이터 누락 방지.최소 1개 남기기 조건 구현합성 시 최소 1개를 남겨야 하는 조건을 구현.materialCount와 maxMaterials 계산을 조정하여 합성 가능한 재료 수를 제한.사진 .. 더보기
TIL(Today I Learned) - 54 오늘의 TIL (Today I Learned)SkillInfoPopupUI 강화 로직 구현Skill 클래스의 강화 로직(Enhance)을 활용하여 UI에 강화 기능을 추가했다.강화 버튼 클릭 시 currentSkill.Enhance()를 호출하여 스킬의 강화 상태를 변경하고, 강화 성공 여부에 따라 UI를 갱신했다.스킬 효과 동적 텍스트 변경스킬 타입(액티브/버프/패시브)에 따라 효과 설명 텍스트를 동적으로 생성 및 변경하는 로직을 추가했다.액티브 스킬은 공격력 비율(n%), 버프 스킬은 공격력 증가율(n%), 패시브 스킬은 주기적 발동 효과를 기반으로 텍스트를 업데이트했다.UI 슬라이더 및 재료 표시강화에 필요한 재료의 현재 수량과 필요한 수량을 표시하는 슬라이더를 추가했다.materialSlider와.. 더보기
TIL(Today I Learned) - 40 QuitGame 메서드 개선:Application.Quit()은 Unity 에디터에서 작동하지 않기 때문에, UnityEditor.EditorApplication.isPlaying = false;를 추가하여 에디터 모드에서도 종료 테스트가 가능하도록 구현했습니다.이로써 QuitGame 메서드가 빌드 환경과 Unity 에디터 환경 모두에서 일관되게 작동하도록 했습니다.씬 전환 시 GameManager 초기화:OnSceneLoaded를 통해 씬이 로드될 때 InitializeGame을 호출하여 InGameScene에서 필요한 설정이 자동으로 초기화되도록 했습니다.GameManager가 초기화 과정에서 필요한 오브젝트들을 동적으로 생성하여 관리하도록 설계하여 코드의 유연성과 유지보수성을 높였습니다.슬라이더로 .. 더보기
TIL(Today I Learned) - 23 오늘은 팀과제를 하는 도중 플레이어 쪽을 건드는 작업을 하였다. 처음에는 배열로 처리하지 않고 긴 코드를 나열하여 코드의 가독성이 떨어져 팀원분이 배열로 처리하는게 좋다고 하셔서 조언을 듣고 플레이어 사망처리 부분을 플레이어 1 플레이어 2를 배열로 구분지어 인덱스를 불러와서 정리하는법으로 바꾸었더니 가독성이 좋아졌다. 앞으로도 팀원말 잘 듣고 열심히 해야겠다. 더보기