내일배움 썸네일형 리스트형 TIL(Today I Learned) - 78 오늘의 TIL (Today I Learned)Unity에서 스킬의 하이라이트 효과를 구현하는 과정에서 중요한 포인트를 배웠습니다. SetActive() 메서드를 사용하여 하이라이트 효과를 활성화하고 비활성화하는 방식으로, buffDuration 값을 통해 효과의 지속 시간을 정확히 설정해야 한다는 점을 깨달았습니다.핵심 사항:하이라이트 효과 연결: 효과가 적용될 게임 오브젝트를 정확히 연결하고, 이를 SetActive()로 켜고 끄는 방식으로 처리합니다.타이밍 관리: Coroutine을 사용하여 효과의 지속 시간을 관리하고, buffDuration 값에 맞춰 효과가 자동으로 꺼지게 설정했습니다.디버깅: buffDuration 값이 로그에 정확히 출력되는지 확인하며, 불필요한 겹침 없이 효과가 잘 작동하는.. 더보기 TIL(Today I Learned) - 68 오늘의 TIL오브젝트 풀링과 초기화 문제 해결오브젝트 풀링 시스템에서 객체를 재사용할 때 초기화가 필요하다면 OnEnable을 활용해야 한다는 것을 배웠습니다.Awake나 Start는 객체가 처음 생성될 때만 호출되므로, 풀링된 객체가 다시 활성화될 때 초기화하려면 OnEnable에서 필요한 작업을 처리해야 합니다.캐싱된 객체와 싱글톤 활용PlayerObjManager.Instance와 같은 싱글톤을 활용하면 플레이어와 같은 특정 객체를 효율적으로 참조할 수 있다는 것을 배웠습니다.오브젝트 풀링된 적(enemy)에서 플레이어 데이터를 매번 GetComponent로 가져오는 대신, 싱글톤을 활용하여 OnEnable 시점에 초기화할 수 있습니다.코드 최적화와 가독성OnTriggerEnter2D와 OnTrig.. 더보기 TIL(Today I Learned) - 67 오늘의 TILRegenManager 최적화:EnemyMover를 미리 캐싱하여 GetComponent 호출을 줄이고 성능을 개선했습니다.오브젝트 풀링을 활용하여 적 오브젝트와 관련 컴포넌트를 재사용하는 구조를 완성했습니다.적 배치 방식 변경:RegenManager 위치를 기준으로 X축 방향으로 일정 간격을 두고 적을 배치하도록 구현했습니다.spawnDistance를 활용해 배치 간격을 Unity Editor에서 쉽게 조정 가능하게 했습니다.컴포넌트 캐싱 활용:적 오브젝트의 주요 컴포넌트(EnemyMover)를 한 번만 초기화하고 이후 재사용하여 불필요한 작업을 제거했습니다.List 형태로 데이터를 관리해 코드 가독성과 유지보수성을 높였습니다.오늘의 작업으로 적 생성과 이동 로직이 더욱 효율적으로 개선되었.. 더보기 TIL(Today I Learned) - 65 오늘의 TIL (Today I Learned)액티브 스킬의 발동 조건 문제 해결액티브 스킬의 발동 조건을 히트 기반으로 변경하면서, 쿨타임 값이 0으로 고정되는 문제가 발생.IsReadyToActivate와 RemainingCooldown의 로직을 수정하여 쿨타임 기반과 히트 기반 조건을 명확히 분리함.히트 기반 스킬은 currentHits를 기준으로 처리하고, UI에도 올바르게 반영되도록 수정.ResetCondition 함수 수정스킬 타입에 따라 쿨타임(cooldownTimer)과 히트 횟수(currentHits) 초기화를 각각 처리하도록 개선.히트 기반 스킬에서는 currentHits를 0으로 초기화하여 조건이 다시 충족되도록 설정.SkillEquipSlot의 UI 로직 개선쿨타임 기반 스킬은 남은 .. 더보기 TIL(Today I Learned) - 64 오늘의 TIL (Today I Learned)인벤토리에 없는 스킬 표시 문제 해결:처음에는 인벤토리에 없는 스킬이 UI에 표시되지 않던 문제를 해결하려고 했다. 이 문제는 기본적으로 인벤토리에 없는 스킬은 아이콘이 보이지 않거나, UI에 표시되지 않는 상황이었음.이 문제를 해결하기 위해 **SkillInventorySlot**에서 인벤토리에 없는 스킬도 UI에 표시되게 하기 위한 로직을 추가했다.**SkillInventorySlot**에서 소유한 스킬과 소유하지 않은 스킬을 구분하여 UI에서 보여줄 수 있도록 했다. 소유하지 않은 스킬은 아이콘을 어둡게 처리하고, "No Inventory" 텍스트를 활성화해 사용자가 해당 스킬을 소유하지 않음을 인식할 수 있도록 했다.이때 아이콘의 알파값을 0으로 조정하.. 더보기 TIL(Today I Learned) - 61 오늘의 TIL (Today I Learned)문제: 합성 시스템의 개선문제 정의:게임에서 아이템 합성 시, 보유한 아이템 중 1개는 남겨두고 나머지를 합성에 사용해야 한다. 예를 들어, 5개가 있다면 4개는 합성에 사용되고, 1개는 남아 있어야 한다.해결 과정:PerformBatchFusion 메서드에서 아이템의 StackCount를 확인하고, 남겨야 할 1개를 고려하여 최대 합성 횟수를 계산하였다. 이를 통해 실제 합성 가능한 개수를 정확하게 추출할 수 있었다.기존의 Fuse 메서드는 변경하지 않고 그대로 유지하며, 필요한 조건만 추가하여 사용하였다. 기존에 잘 동작하던 기능을 그대로 유지하는 것이 중요하다는 교훈을 얻었다.문제: 마지막 등급 아이템 처리문제 정의:마지막 등급의 아이템은 합성할 수 없도.. 더보기 TIL(Today I Learned) - 56 TIL: 인터페이스와 런타임 데이터의 활용문제 정의 및 해결 과정IEnhanceable 인터페이스를 사용하는 과정에서 인터페이스에 정의되지 않은 StackCount를 접근하려고 시도하여 오류가 발생함.StackCount를 IEnhanceable 인터페이스에 추가하거나, 명시적 캐스팅을 통해 구현 클래스에서 직접 접근하도록 수정함.해결 방법IEnhanceable 인터페이스 수정: StackCount를 포함하여 모든 구현 클래스에서 통일된 접근 방식을 제공.타입 캐스팅 활용: 특정 클래스(Weapon, Accessory)로 캐스팅하여 개별 구현에 접근.주요 학습 내용인터페이스 설계: 인터페이스는 공통된 속성과 동작을 정의하며, 구현 클래스 간의 일관성을 유지함.런타임 데이터와 SO 데이터 구분: 강화 및 융.. 더보기 TIL(Today I Learned) - 55 오늘의 TILWeaponUpgradePopupUI 구현WeaponUpgradePopupUI를 구현하면서 보유 효과를 동적으로 처리하는 방식을 배웠습니다.보유 효과(Passive Effects)는 값이 0일 경우 UI에서 숨기고, 1개, 2개, 또는 3개의 보유 효과가 유동적으로 표시되도록 설정했습니다.SetActive 메서드를 사용해 해당 Row를 조건적으로 표시하는 방법을 적용했습니다.UI 업데이트 로직 개선무기 강화 시 SetWeaponData를 호출해 UI가 실시간으로 갱신되도록 설계했습니다.UpgradeWeapon 메서드에서 무기 강화 성공 여부를 확인하고, 성공 시 보유 효과 및 강화 비용 UI를 갱신했습니다.유연한 UI 컴포넌트 활용possessEffectRow1, possessEffectRo.. 더보기 이전 1 2 3 4 ··· 6 다음