본문 바로가기

TIL(Today I Learned)

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) - 47 오늘의 TIL (Today I Learned):SkillSO와 ScriptableObject:ScriptableObject는 데이터 중심의 설계에 적합하며, 게임 내 스킬이나 아이템 데이터를 관리하는 데 매우 유용하다.스킬 실행 로직은 SkillSO가 아닌 별도의 매니저 클래스에서 처리하는 것이 더 역할 분리가 잘 된다.스킬 시스템 설계:스킬 쿨다운과 실행 로직을 PlayerSkill에서 관리하고, 실제 효과를 SkillManager로 분리하여 구현하면 유지보수와 확장성이 높아진다.SkillSO는 스킬의 이름, 설명, 쿨다운, 마나 소모량, 데미지 등 데이터를 저장하고, 실행 로직은 포함하지 않는 것이 적합하다.싱글톤 패턴 활용:SkillManager를 싱글톤으로 설계하여 게임 내 어디서든 스킬 실행 로.. 더보기
TIL(Today I Learned) - 46 오늘은 최종 프로젝트를 시작하는 날이었다.프로젝트의 첫걸음으로, 팀원들과 함께 게임 기획에 대해 다양한 이야기를 나누며 방향을 정리했다.처음 통일된 의견은 **방치형 클리커 게임인 "오크 아이돌 키우기"**였다.오크 아이돌 키우기라는 독특한 컨셉을 잡고, 튜터님과 멘토님께 조언을 구했다.그러나 컨셉에 대해 피드백을 받은 결과, 오크 아이돌 키우기의 경우컨셉이 다소 난잡하고 일반적인 포트폴리오에 적합하지 않다는 의견을 들었다.결국, 컨셉을 보다 일반적이고 정돈된 방향으로 수정하기로 결정했다.우리 팀은 더 많은 것을 보여주고, 경쟁력을 갖추기 위해 차별화된 컨셉을 시도했지만,오히려 이런 차별성이 독이 될 수 있다는 중요한 교훈을 얻었다.오늘의 배움:독창적인 컨셉도 중요하지만, 목표와 대상에 맞춘 적합성이 우.. 더보기
TIL(Today I Learned) - 45 GPT도 쓰지말자........ 더보기
TIL(Today I Learned) - 44 📚 오늘의 TILUnity의 SoundManager 구조 설계BGM과 효과음을 분리하여 AudioSource 두 개를 활용하는 방식으로 구현.PlayBackgroundMusic 메서드를 사용해 씬 전환 시 자동으로 BGM을 변경.PlaySound로 버튼 클릭이나 아이템 획득 효과음을 관리.버튼 클릭 효과음 구현 방법UIButtonSFX 스크립트를 각 버튼에 추가하여 클릭 이벤트마다 효과음 재생.SoundManager.Instance.PlaySound를 호출해 버튼별 효과음을 독립적으로 설정 가능.스나이퍼 엘리트 스타일 인게임 BGM긴장감을 조성하는 스텔스 음악과 전투 상황에서 역동성을 더하는 음악이 중요.드론 스타일의 저음 기반 음악과 오케스트라 타악기, 현악기의 조합이 효과적.Unity에서 TIL 적.. 더보기
TIL(Today I Learned) - 43 오늘 배운 것 (TIL)UI 미니맵 삼각형 방향 표시삼각형(시야 표시)의 Pivot 설정이 UI 회전과 연계되어 중요하며, Pivot을 (0.5, 0.0)으로 설정하여 꼭짓점이 플레이어 중심에 위치하도록 구현.삼각형의 회전은 Z축 회전을 조정하여 플레이어의 바라보는 방향에 맞추는 것이 핵심.Pivot 문제 해결Pivot 설정은 Unity Editor에서 변경하거나, 코드에서 강제로 설정.잘못된 Pivot 값은 회전 계산에 영향을 미쳐 삼각형이 플레이어와 어긋나는 원인이 됨.UI 좌표 변환플레이어 월드 좌표를 미니맵 좌표로 변환할 때, 비율 계산이 정확해야 UI가 맵 크기와 일치.특히 맵의 비율과 크기를 정확히 고려해야 이상 없이 동작.디버깅의 중요성문제 발생 시, Debug.Log()를 활용해 좌표, 회.. 더보기
TIL(Today I Learned) - 42 📆 오늘의 TIL (Today I Learned)1. 퀵 슬롯 시스템 개선문제 해결:아이템 데이터를 UI 퀵 슬롯과 연결하고, 자동으로 슬롯 UI를 업데이트하도록 시스템을 설계.비어 있는 슬롯 선택 시 장착 해제가 발생하는 문제를 조건문으로 방지.학습:이벤트 구독을 활용하여 장착 상태를 UI에 실시간 반영.Action 이벤트를 활용해 데이터를 동적으로 처리.2. 사운드 매니저 구현Singleton 기반 SoundManager:AudioSource를 활용하여 발사, 장전, 무기 장착 등 상황별 사운드 재생.PlayOneShot과 PlayClipAtPoint를 사용하여 위치 기반 및 일반 사운드 구현.문제 해결:오디오 소스가 누락된 경우 디버깅 로그를 활용해 문제를 빠르게 해결.확장 가능성:각 무기마다 고.. 더보기
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)를 통해 슬롯 아이템 사용.아이템 사용 후 수.. 더보기