본문 바로가기

스파르타

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. 슬롯 간의 아이템 일치 비교각 슬롯에서 아이템을 비교할 때, 아이템의 이름을 기준으로 강화된 아이템을 찾는 방법을 구현.슬롯에 있는 아이템과 강화된 아이템.. 더보기
TIL(Today I Learned) - 75 오늘의 TIL(Today I Learned):1. BigInteger 사용법BigInteger는 매우 큰 숫자를 다룰 수 있는 데이터 타입으로, System.Numerics 네임스페이스에서 제공된다.BigInteger는 기본적인 산술 연산뿐만 아니라, 덧셈, 뺄셈, 곱셈, 나눗셈을 지원한다. 다만, BigInteger는 기본적으로 float나 double처럼 소수점 계산을 하지 않기 때문에, 대체로 정수 기반 계산에 적합하다.2. 패시브 데미지 계산패시브 데미지를 처리할 때는 값을 누적되지 않도록 관리해야 한다. 주기적으로 갱신되는 데미지 계산에서 패시브 데미지는 한 번만 적용되게 해야 한다.예를 들어, rawTotalDamage를 계산할 때 passiveDamage는 한 번만 적용되도록 해야 하며, 여.. 더보기
TIL(Today I Learned) - 74 오늘의 TIL (Today I Learned):C#에서 BigInteger 사용법:BigInteger는 정수 계산에서 매우 큰 값을 다룰 수 있는 데이터 타입입니다. Unity와 같은 게임 엔진에서 BigInteger를 사용하면 매우 큰 수의 처리와 계산이 가능하며, 게임의 경험치나 금액처럼 점차적으로 커지는 수치에 유용하다.BigInteger의 주요 특징은 다른 숫자 타입들과 달리 범위가 제한되지 않아, int나 long보다 훨씬 더 큰 값을 저장하고 계산할 수 있다는 점입니다.마나 회복 기능 구현:마나 회복을 위한 로직은 reduceMana(-50)처럼 음수로 값을 전달하여 마나를 증가시킬 수 있다. 이를 통해 플레이어의 마나를 회복시키는 스킬이나 버프를 구현할 수 있다.ParallaxBackgrou.. 더보기
TIL(Today I Learned) - 69 📌 오늘의 TIL: 프로젝타일과 애니메이션 제어 관련 문제 해결🎯 문제 상황액티브 스킬을 사용했을 때 프로젝타일 발사와 애니메이션 동작을 제어하는 과정에서 문제가 발생.스킬 발동 시 기존 애니메이션이 중단되지 않고 계속 실행됨.프로젝타일 관련 코드와 애니메이션 트리거 간의 충돌로 인해 스킬 효과가 기대대로 적용되지 않음.🔍 문제 원인Animator 상태 충돌:Any State에서 Attack 상태로 전환하는 구조가 애니메이션 동작을 중단하지 않고 중복 실행되도록 함.Animator 트리거 관리 미흡:Animator.ResetTrigger와 Animator.SetTrigger가 적절히 관리되지 않아서 상태가 중복 실행됨.스킬 실행 플래그 부재:스킬 사용 중인지 체크하는 플래그가 없어, 애니메이션이 반.. 더보기
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 형태로 데이터를 관리해 코드 가독성과 유지보수성을 높였습니다.오늘의 작업으로 적 생성과 이동 로직이 더욱 효율적으로 개선되었.. 더보기