본문 바로가기

전체 글

TIL(Today I Learned) - 83 TIL (Today I Learned) - 2025년 1월 20일1. 스킬 시스템 리팩토링기존에는 ActiveSkill, PassiveSkill, BuffSkill 등 각 스킬 타입을 별도의 클래스들로 관리했으나, 코드 중복과 유지보수 문제로 인해 BaseSkill 클래스로 통합 리팩토링 진행.공통 로직(쿨다운, 스킬 효과, 강화 등)을 BaseSkill에서 처리하고, 각 스킬의 특화된 로직은 하위 클래스에서 구현하도록 구조 변경.SkillEffect 객체를 활용해 스킬 효과를 일관되게 처리하며, SkillEffectManager로 스킬 발동 로직 관리.코드의 중복이 줄고, 새로운 스킬 타입 추가 시 확장성이 높아짐.2. Inventory 시스템 리팩토링기존에는 스킬, 무기, 장신구 등 아이템별로 별도 .. 더보기
TIL(Today I Learned) - 82 오늘의 TIL (Today I Learned)Unity 프로젝트 디버깅 및 상태 추적오늘은 Unity 프로젝트에서 PlayerStat 클래스의 health 값을 추적하는 방법에 대해 고민하고, 이를 효과적으로 디버깅하고 추적하는 방안을 구현했습니다.문제 상황health 값 초기화 및 변경 이슈health 값이 게임의 첫 프레임에서 잘못된 값으로 초기화되거나, 의도하지 않은 방식으로 변경되는 현상이 있었습니다. 이를 디버깅하기 위해 값의 변경 이력을 추적하고, 변경된 시점과 값을 확인할 수 있는 방법이 필요했습니다.기존 Debug.Log의 한계값이 변경될 때마다 로그를 출력하는 방식은 단순히 현재 상태를 확인할 수 있지만, 변경 이력을 누적해서 확인하거나, 어떤 로직에서 값이 변경되었는지 명확히 추적하기 .. 더보기
TIL(Today I Learned) - 81 📅 오늘의 TIL (Today I Learned)🛠 Unity UI 및 Skill Management 개선Skill Slot UI 관리:스킬 슬롯 UI를 관리하는 SkillEquipSlot 스크립트를 분석 및 수정.불필요한 highlightEffect2 관련 로직을 제거하여 코드 간소화.스킬 UI 업데이트 로직을 개선해 다음과 같은 사항을 처리:스킬 쿨타임 및 조건에 따른 UI 갱신.스킬이 장착되지 않은 경우 기본 상태로 초기화.하이라이트 효과 관리:슬롯 상태에 따라 하이라이트 효과를 동적으로 업데이트.요청에 따라 특정 효과 (highlightEffect2)를 완전히 제거하여 더 깔끔한 관리가 가능하도록 구현.UI 업데이트 방식 이해:Update()를 활용하여 실시간으로 UI 상태를 반영.이벤트 중심.. 더보기
TIL(Today I Learned) - 80 오늘의 TIL (Today I Learned):1. 스킬 효과와 데이터 갱신 문제스킬의 효과가 강화되었을 때, SkillEffect 객체가 원본 데이터를 그대로 참조하고 있다는 문제를 발견했습니다.TriggerEffect 메서드에서 최신화된 데이터를 반영하지 못하는 현상이 발생했습니다. 이를 해결하려면, 스킬의 상태를 최신화된 값으로 반영하는 로직이 필요하다는 것을 깨달았습니다.2. 스킬 데이터 갱신 및 객체 상태 관리강화된 SkillEffect 데이터를 반영하려면, BaseSkill 클래스 내에서 SkillEffect 객체를 갱신하는 방식을 수정해야 했습니다.이를 위해 SkillEffect의 속성 값들이 정확히 업데이트되도록 하고, 강화된 값이 TriggerEffect와 GetSkillEffect 메서.. 더보기
TIL(Today I Learned) - 79 📅 오늘의 TIL (Today I Learned)1. 비활성화된 게임 오브젝트와 코루틴 문제Unity에서는 비활성화된 게임 오브젝트(SetActive(false))에 속한 스크립트에서 StartCoroutine을 호출할 수 없다.이 문제를 해결하려면 코루틴을 실행하기 전에 게임 오브젝트를 활성화(SetActive(true))해야 한다.이벤트 구독과 게임 오브젝트 상태 관리의 순서가 중요하며, Awake, OnEnable, OnDisable 등 Unity 라이프사이클 메서드를 적절히 사용해야 한다.2. Unity에서 UI 페이드 효과 구현Image 또는 SpriteRenderer의 Color 속성을 조정하여 페이드 인/아웃 효과를 구현할 수 있다.Lerp를 사용해 알파 값을 부드럽게 감소시키며 시각적인 .. 더보기
TIL(Today I Learned) - 78 오늘의 TIL (Today I Learned)Unity에서 스킬의 하이라이트 효과를 구현하는 과정에서 중요한 포인트를 배웠습니다. SetActive() 메서드를 사용하여 하이라이트 효과를 활성화하고 비활성화하는 방식으로, buffDuration 값을 통해 효과의 지속 시간을 정확히 설정해야 한다는 점을 깨달았습니다.핵심 사항:하이라이트 효과 연결: 효과가 적용될 게임 오브젝트를 정확히 연결하고, 이를 SetActive()로 켜고 끄는 방식으로 처리합니다.타이밍 관리: Coroutine을 사용하여 효과의 지속 시간을 관리하고, buffDuration 값에 맞춰 효과가 자동으로 꺼지게 설정했습니다.디버깅: buffDuration 값이 로그에 정확히 출력되는지 확인하며, 불필요한 겹침 없이 효과가 잘 작동하는.. 더보기
TIL(Today I Learned) - 77 Unity 개발 인사이트인벤토리 시스템 최적화인벤토리 슬롯 할당 시 아이템을 새로 생성하는 대신 플레이어 인벤토리에서 직접 가져오도록 개선. 이를 통해 데이터 일관성이 유지되고 다른 시스템과의 연동이 용이해짐.UI 다중 라인 텍스트 조정Unity에서 \n을 사용해 텍스트에 줄바꿈 적용. 텍스트 필드나 UI 요소에 표시되는 문자열의 가독성을 높이는 방법 학습.프레임 속도 제한 문제 해결모바일 빌드에서 30프레임으로 고정되는 문제를 확인하고 Application.targetFrameRate를 사용해 프레임 속도 조정.효과 설명 동적 생성스킬 데이터의 effectDescription을 템플릿으로 활용해 동적 문자열 생성. 플레이스홀더({key})를 실제 값으로 교체하는 로직 구현.숫자가 의도한 대로 표시되지 .. 더보기
TIL(Today I Learned) - 76 1. UIManager를 통한 아이템 강화 레벨 업데이트UIManager를 중간 다리로 활용하여 강화된 아이템의 레벨을 여러 슬롯에 일괄적으로 업데이트하는 방법을 학습함.EquipmentUpgradePopupUI에서 강화 완료 시, UIManager.Instance.UpdateItemEnhancement(currentItem)을 호출하여 UIManager가 모든 슬롯을 순회하며 해당 아이템의 레벨을 업데이트하도록 구현.EquipmentInventorySlot에서는 강화된 레벨을 UI에 표시하도록 메서드(UpdateEnhancedLevel)를 구현.2. 슬롯 간의 아이템 일치 비교각 슬롯에서 아이템을 비교할 때, 아이템의 이름을 기준으로 강화된 아이템을 찾는 방법을 구현.슬롯에 있는 아이템과 강화된 아이템.. 더보기