TIL(Today I Learned) 썸네일형 리스트형 TIL(Today I Learned) - 64 오늘의 TIL (Today I Learned)인벤토리에 없는 스킬 표시 문제 해결:처음에는 인벤토리에 없는 스킬이 UI에 표시되지 않던 문제를 해결하려고 했다. 이 문제는 기본적으로 인벤토리에 없는 스킬은 아이콘이 보이지 않거나, UI에 표시되지 않는 상황이었음.이 문제를 해결하기 위해 **SkillInventorySlot**에서 인벤토리에 없는 스킬도 UI에 표시되게 하기 위한 로직을 추가했다.**SkillInventorySlot**에서 소유한 스킬과 소유하지 않은 스킬을 구분하여 UI에서 보여줄 수 있도록 했다. 소유하지 않은 스킬은 아이콘을 어둡게 처리하고, "No Inventory" 텍스트를 활성화해 사용자가 해당 스킬을 소유하지 않음을 인식할 수 있도록 했다.이때 아이콘의 알파값을 0으로 조정하.. 더보기 TIL(Today I Learned) - 63 오늘의 TIL (Today I Learned):추상화와 상속 구조:클래스 간 상속을 사용할 때, 공통 기능은 **부모 클래스(BaseClass)**에 추상 메서드로 정의하고, 각 하위 클래스에서 구현할 수 있도록 해야 한다. 예를 들어, BaseSkill 클래스에서는 스킬의 공통 로직을 정의하고, ActiveSkill, PassiveSkill, BuffSkill에서는 각각의 스킬에 맞는 구체적인 로직만 추가한다.쿨다운 및 타격 기반 스킬:쿨다운 기반의 스킬과 타격 기반 스킬은 각기 다른 조건에서 활성화된다. 쿨다운은 스킬 사용 후 일정 시간이 지난 후에 다시 활성화되는 방식으로 처리하며, 타격 기반은 특정 횟수의 타격이 이루어졌을 때 스킬이 발동된다.상속받은 클래스에서 로직 중복 방지:부모 클래스에서 이.. 더보기 TIL(Today I Learned) - 62 오늘의 TIL (Today I Learned)1. 리팩토링 및 스킬 시스템 개선기존의 스킬 시스템을 객체지향적 구조로 리팩토링했습니다.스킬의 기본 클래스인 BaseSkill을 설계하고, 이를 상속받는 ActiveSkill, BuffSkill, PassiveSkill로 나누어 구체화했습니다.각 스킬 클래스에서 GetSkillEffect를 통해 스킬 효과 객체를 생성하고, 이를 SkillEffectManager에 전달하여 이펙트 및 효과를 처리하도록 개선했습니다.2. 스킬 클래스별 기능 세분화ActiveSkill: 즉시 발동하는 스킬로, 마나 소모 및 쿨다운이 존재합니다.BuffSkill: 일정 시간 동안 버프 효과를 적용하는 스킬입니다.PassiveSkill: 전투 중 조건에 따라 자동 발동되며, 쿨다운이.. 더보기 TIL(Today I Learned) - 61 오늘의 TIL (Today I Learned)문제: 합성 시스템의 개선문제 정의:게임에서 아이템 합성 시, 보유한 아이템 중 1개는 남겨두고 나머지를 합성에 사용해야 한다. 예를 들어, 5개가 있다면 4개는 합성에 사용되고, 1개는 남아 있어야 한다.해결 과정:PerformBatchFusion 메서드에서 아이템의 StackCount를 확인하고, 남겨야 할 1개를 고려하여 최대 합성 횟수를 계산하였다. 이를 통해 실제 합성 가능한 개수를 정확하게 추출할 수 있었다.기존의 Fuse 메서드는 변경하지 않고 그대로 유지하며, 필요한 조건만 추가하여 사용하였다. 기존에 잘 동작하던 기능을 그대로 유지하는 것이 중요하다는 교훈을 얻었다.문제: 마지막 등급 아이템 처리문제 정의:마지막 등급의 아이템은 합성할 수 없도.. 더보기 TIL(Today I Learned) - 60 오늘의 TIL1. 강화 상태와 UI 데이터 일치 문제 해결문제: 강화된 상태가 유지되지 않고, 화살표로 이동할 때 새로운 데이터가 로드되는 현상이 발생.원인: UI가 슬롯의 강화된 데이터를 참조하지 않고, DataManager에서 새로운 데이터를 가져오는 방식으로 구현되어 있었음.해결: 슬롯에서 넘겨받은 데이터를 기준으로 탐색하도록 수정하고, currentItem을 중심으로 데이터와 UI를 동기화.2. 수정된 접근 방식기존 방식: DataManager에서 데이터를 새로 가져와 사용 -> 강화 상태가 유지되지 않음.새로운 방식: 인벤토리의 리스트를 참조하여 currentItem을 기반으로 탐색. 슬롯의 데이터를 유지하면서 화살표 이동 가능.3. 주요 변경점SelectPreviousItem과 SelectNe.. 더보기 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) - 58 오늘의 TIL:UI 갱신과 실제 데이터 반영의 중요성문제 상황: 합성 후, 재료 아이템의 스택 수는 감소하지만 UI에서는 업데이트되지 않는 문제를 겪음.원인: Fuse 메서드 내에서 스택 수를 변경한 후, UI 갱신을 따로 호출하지 않아서 실제 데이터는 변하지만, 화면에 반영되지 않음.해결 방법: RemoveStack 호출 후 **UpdateInventorySlots()**를 호출하여 UI를 갱신함으로써 UI와 데이터 간 동기화를 맞춤.핵심 포인트:데이터 변경 후 UI도 동기화해야 한다는 점을 기억.UpdateInventorySlots() 메서드를 통해 아이템의 스택 수와 UI를 일치시킬 수 있음.오늘도 UI와 실제 데이터를 동기화하는 과정에서 중요한 점을 다시 한 번 확실히 알게 되었다. 더보기 TIL(Today I Learned) - 57 오늘의 TIL:오늘은 IFusable 인터페이스를 사용하여 합성 기능을 구현하는 과정에서 Fuse() 메서드와 관련된 매개변수를 다루었습니다. Fuse() 메서드에 매개변수를 추가하여 합성 횟수(materialCount)를 기반으로 합성 가능한 아이템의 갯수를 동적으로 처리할 수 있도록 했습니다. 또한, Weapon과 Accessory 객체의 합성 조건을 변경하고, 재료 수량을 확인하는 기능을 개선했습니다.합성 UI를 갱신하는 과정에서는 currentEquipmentAmountTxt의 텍스트가 제대로 표시되지 않는 문제를 해결했으며, UI 업데이트 시 두 번의 currentEquipmentAmountTxt.text 업데이트를 통해 문제를 수정했습니다.WeaponInventory와 AccessoryInve.. 더보기 이전 1 2 3 4 5 6 ··· 10 다음