본문 바로가기

개발

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) - 74 오늘의 TIL (Today I Learned):C#에서 BigInteger 사용법:BigInteger는 정수 계산에서 매우 큰 값을 다룰 수 있는 데이터 타입입니다. Unity와 같은 게임 엔진에서 BigInteger를 사용하면 매우 큰 수의 처리와 계산이 가능하며, 게임의 경험치나 금액처럼 점차적으로 커지는 수치에 유용하다.BigInteger의 주요 특징은 다른 숫자 타입들과 달리 범위가 제한되지 않아, int나 long보다 훨씬 더 큰 값을 저장하고 계산할 수 있다는 점입니다.마나 회복 기능 구현:마나 회복을 위한 로직은 reduceMana(-50)처럼 음수로 값을 전달하여 마나를 증가시킬 수 있다. 이를 통해 플레이어의 마나를 회복시키는 스킬이나 버프를 구현할 수 있다.ParallaxBackgrou.. 더보기
TIL(Today I Learned) - 72 TIL (Today I Learned) - 2025년 1월 2일1. Unity에서 파티클 시스템 이펙트 처리Unity에서 스킬 이펙트가 플레이어 캐릭터나 적에게 적용될 때, 파티클 시스템을 활용하여 효과를 시각적으로 구현하는 방법에 대해 배웠습니다.파티클 시스템을 생성할 때, 이펙트가 적의 위치에 정확하게 생성되도록 Instantiate를 사용하고, 그 후 해당 이펙트를 적의 부모로 설정하여 적과 함께 이동하도록 처리했습니다.이펙트가 적에게 생성될 때 파티클 렌더링의 Sorting Layer를 조정하여, 파티클 이펙트가 다른 오브젝트를 가리지 않도록 Order in Layer 값을 변경하는 방법을 익혔습니다.2. 스킬 이펙트와 데미지 적용의 타이밍 맞추기스킬 이펙트와 데미지 적용의 타이밍을 맞추는 방법에.. 더보기
TIL(Today I Learned) - 48 오늘의 TIL (Today I Learned)스킬 시스템 구조 개선SkillManager와 PlayerSkill 간 역할을 명확히 분리하여, SkillManager는 스킬 실행을 총괄하고 PlayerSkill은 스킬 실행 로직을 담당하도록 설계.TriggerSkill을 통해 스킬 타입(Active, Buff, Passive)에 따른 적절한 메서드를 호출.패시브 스킬 동작 방식전투 시작 시 자동으로 발동하며, 쿨다운이 끝나면 다시 발동.buffDuration 동안 효과가 유지되며, 종료 시 원래 상태로 복구.isBuffActive를 활용하여 중복 발동을 방지.유연한 스킬 관리List를 활용하여 스킬 데이터(ScriptableObject) 기반으로 동작.cooldownTimers와 isBuffActive 배.. 더보기
TIL(Today I Learned) - 34 Unity에서 플레이어 무적 상태와 장애물 충돌 처리1. Physics.IgnoreLayerCollision을 활용한 간단한 무적 처리주요 발견: 무적 상태를 수동으로 확인하며 충돌을 처리하는 대신, Physics.IgnoreLayerCollision을 사용해 레이어 기반 충돌 무시를 설정하는 것이 더 효율적입니다. 이를 통해 플레이어와 장애물 간의 충돌을 무적 상태일 때 비활성화할 수 있습니다.장점: 조건문을 통한 충돌 처리 코드보다 간단하고, Unity의 물리 엔진을 활용해 성능에도 이점이 있습니다.2. 이벤트 기반의 체력 관리 시스템주요 발견: OnHealthChanged, OnLifeChanged, OnPlayerDeath 같은 Action 이벤트를 PlayerHealth 클래스에서 사용하면 체력.. 더보기
TIL(Today I Learned) - 25 오늘은 팀원과 협업 팀워크중에 발생한 일이다. 나는 양방향 참조가 나쁜지 모르고 무분별하게 양방향 참조를 하고 있었다. 따라서 양방향 참조에 대해 공부하여 장단점을 나만의 말로 썼다. 양방향 참조의 단점순환 의존성 (Circular Dependency) 위험: 양방향 참조는 두 클래스나 오브젝트가 서로를 참조할 때 발생합니다. 이로 인해 순환 의존성이 발생할 수 있으며, 이는 디버깅과 테스트가 복잡해지고 메모리 누수 같은 문제가 발생할 수 있습니다. 특히 객체가 서로를 참조하는 상태에서 적절히 해제되지 않으면 메모리 릭이 발생할 수 있습니다.코드 복잡성 증가: 클래스 간의 결합도가 높아집니다. A가 B를, B가 A를 참조하는 경우 두 클래스가 서로 강하게 연결되어 유지보수가 어려워집니다. 이러한 구조에서.. 더보기