본문 바로가기

코더

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) - 71 📘 오늘의 TIL (Today I Learned)스킬 데미지와 기본 공격 데미지 분리PlayerDamageCalculator의 GetTotalDamage 메서드에서 isSkill 매개변수를 추가하여 스킬 데미지와 기본 공격 데미지를 분리하는 방법을 배웠습니다.ResetSkillEffects 메서드를 추가해 스킬 사용 후 스킬 효과를 초기화할 수 있도록 수정했습니다.애니메이션 이벤트를 활용한 스킬 데미지 타이밍 처리스킬 애니메이션 도중 특정 타이밍에 데미지가 들어가도록 애니메이션 이벤트를 설정하는 방법을 학습했습니다.Unity의 Animation 창에서 이벤트를 추가하고, 해당 이벤트가 호출할 메서드를 구현하는 과정을 익혔습니다.스킬 효과 초기화 및 상태 전환스킬 데미지가 기본 공격과 충돌하지 않도록, .. 더보기
TIL(Today I Learned) - 70 오늘의 TILUnity에서 ActiveSkill의 OnPlayer 타입 처리 개선문제: OnPlayer 타입의 액티브 스킬이 적에게 데미지를 적용하지 않는 문제가 발생.원인: PlayerSkillHandler에서 OnPlayer 타입 스킬이 발동될 때, 적 탐지는 했지만 데미지 전달 로직이 누락되어 있음.해결: HandleSkillUsed 메서드에서 OnPlayer 타입 스킬이 발동되면, Physics2D.OverlapCircleAll로 탐지된 적들에게 데미지를 적용하도록 수정.코루틴에서 비활성화된 오브젝트 문제문제: 적이 죽을 때 Coroutine couldn't be started because the the game object 'Enemy' is inactive! 오류 발생.원인: 코루틴 실행 중.. 더보기
TIL(Today I Learned) - 69 📌 오늘의 TIL: 프로젝타일과 애니메이션 제어 관련 문제 해결🎯 문제 상황액티브 스킬을 사용했을 때 프로젝타일 발사와 애니메이션 동작을 제어하는 과정에서 문제가 발생.스킬 발동 시 기존 애니메이션이 중단되지 않고 계속 실행됨.프로젝타일 관련 코드와 애니메이션 트리거 간의 충돌로 인해 스킬 효과가 기대대로 적용되지 않음.🔍 문제 원인Animator 상태 충돌:Any State에서 Attack 상태로 전환하는 구조가 애니메이션 동작을 중단하지 않고 중복 실행되도록 함.Animator 트리거 관리 미흡:Animator.ResetTrigger와 Animator.SetTrigger가 적절히 관리되지 않아서 상태가 중복 실행됨.스킬 실행 플래그 부재:스킬 사용 중인지 체크하는 플래그가 없어, 애니메이션이 반.. 더보기
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) - 54 오늘의 TIL (Today I Learned)SkillInfoPopupUI 강화 로직 구현Skill 클래스의 강화 로직(Enhance)을 활용하여 UI에 강화 기능을 추가했다.강화 버튼 클릭 시 currentSkill.Enhance()를 호출하여 스킬의 강화 상태를 변경하고, 강화 성공 여부에 따라 UI를 갱신했다.스킬 효과 동적 텍스트 변경스킬 타입(액티브/버프/패시브)에 따라 효과 설명 텍스트를 동적으로 생성 및 변경하는 로직을 추가했다.액티브 스킬은 공격력 비율(n%), 버프 스킬은 공격력 증가율(n%), 패시브 스킬은 주기적 발동 효과를 기반으로 텍스트를 업데이트했다.UI 슬라이더 및 재료 표시강화에 필요한 재료의 현재 수량과 필요한 수량을 표시하는 슬라이더를 추가했다.materialSlider와.. 더보기
TIL(Today I Learned) - 41 오늘은 Unity 프로젝트에서 Git을 활용하는 방법과 QuickSlot 시스템 구현에 대해 학습했습니다.Git 상태 메시지 이해git status 명령을 통해 변경된 파일 상태를 확인.Git의 파일 상태:Changes not staged for commit: 수정되었지만 staging area에 추가되지 않은 파일.Untracked files: Git이 추적하지 않는 새 파일.Staged files: 커밋 준비가 완료된 파일.git add와 git rm 명령을 사용해 파일을 staging area에 추가하거나 삭제 처리.모든 변경 사항을 커밋하기 위해 git commit -m "메시지" 명령 사용.Unity QuickSlot 시스템 구현기능:숫자 키(1~5)를 통해 슬롯 아이템 사용.아이템 사용 후 수.. 더보기
TIL(Today I Learned) - 38 🔍 작업 내용 요약AutoClickController 및 TimeControlController에 대한 기능 구현:자동 클릭 및 시간 조절 버튼을 통해 플레이어 행동을 제어하는 기능을 구현했습니다.버튼 클릭 시 애니메이션 효과 적용 및 구매 여부에 따른 버튼 활성화/비활성화 로직을 추가했습니다.애니메이션 속도 조정:Mathf.PingPong을 사용한 애니메이션 속도를 조절하여 버튼이 4배 느리게 커졌다 작아졌다 하도록 조정했습니다.Mathf.PingPong(Time.time / 4, 0.2f) + 0.9f를 통해, Time.time을 나누어 애니메이션 효과의 속도를 느리게 했습니다.GameManager와의 참조 연결 문제 해결:동적 생성된 Player 객체의 컴포넌트를 참조하기 위해 GameManage.. 더보기