본문 바로가기

전체 글

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)를 통해 슬롯 아이템 사용.아이템 사용 후 수.. 더보기
TIL(Today I Learned) - 40 QuitGame 메서드 개선:Application.Quit()은 Unity 에디터에서 작동하지 않기 때문에, UnityEditor.EditorApplication.isPlaying = false;를 추가하여 에디터 모드에서도 종료 테스트가 가능하도록 구현했습니다.이로써 QuitGame 메서드가 빌드 환경과 Unity 에디터 환경 모두에서 일관되게 작동하도록 했습니다.씬 전환 시 GameManager 초기화:OnSceneLoaded를 통해 씬이 로드될 때 InitializeGame을 호출하여 InGameScene에서 필요한 설정이 자동으로 초기화되도록 했습니다.GameManager가 초기화 과정에서 필요한 오브젝트들을 동적으로 생성하여 관리하도록 설계하여 코드의 유연성과 유지보수성을 높였습니다.슬라이더로 .. 더보기
TIL(Today I Learned) - 39 게임에서 HP 슬라이더와 캐릭터 스탯 연동: HP 슬라이더를 캐릭터의 HP와 연동하려면, HealthSystem에서 체력 변경 이벤트를 발생시키고, UI에서 이를 구독하도록 해야 합니다. 이때, HP 슬라이더는 HealthSystem에서 제공하는 OnHealthChanged 이벤트를 구독하여 체력이 변경될 때마다 슬라이더 값을 업데이트하도록 합니다. 이를 통해, 슬라이더가 실시간으로 체력을 반영하도록 구현할 수 있습니다.몬스터 소환 시 체력과 크기 증가: 몬스터 소환 시마다 체력과 크기를 증가시키기 위해, 소환된 몬스터의 HealthSystem을 초기화할 때 체력과 크기를 조정합니다. monsterOriginalScale을 사용하여 크기를 증가시키고, currentHealthMultiplier를 통해 체.. 더보기
TIL(Today I Learned) - 38 🔍 작업 내용 요약AutoClickController 및 TimeControlController에 대한 기능 구현:자동 클릭 및 시간 조절 버튼을 통해 플레이어 행동을 제어하는 기능을 구현했습니다.버튼 클릭 시 애니메이션 효과 적용 및 구매 여부에 따른 버튼 활성화/비활성화 로직을 추가했습니다.애니메이션 속도 조정:Mathf.PingPong을 사용한 애니메이션 속도를 조절하여 버튼이 4배 느리게 커졌다 작아졌다 하도록 조정했습니다.Mathf.PingPong(Time.time / 4, 0.2f) + 0.9f를 통해, Time.time을 나누어 애니메이션 효과의 속도를 느리게 했습니다.GameManager와의 참조 연결 문제 해결:동적 생성된 Player 객체의 컴포넌트를 참조하기 위해 GameManage.. 더보기
TIL(Today I Learned) - 37 Unity UI 버튼 클릭을 통한 게임 속도 제어:Time.timeScale을 활용하여 게임 속도를 조절하는 기능을 구현했습니다.버튼 클릭 시 속도가 x1, x2, x4 순서로 변경되며, 이를 순환하도록 설정했습니다.TextMeshPro를 사용하여 UI 텍스트 업데이트:버튼 클릭 시 속도 변경 사항을 TextMeshPro 텍스트를 통해 사용자에게 표시했습니다.TextMeshProUGUI 컴포넌트를 통해 "X1", "X2", "X4" 형식으로 텍스트가 업데이트되도록 구현했습니다.Animator 제거:게임 속도 조절에는 애니메이션이 불필요하다는 점을 확인하고 Animator 관련 코드와 트리거 설정을 제거하여 단순화했습니다.애니메이션 효과 대신 속도 변경과 텍스트 업데이트만으로도 필요한 피드백을 제공할 수 .. 더보기
TIL(Today I Learned) - 36 1. UI 이벤트 구독 문제 해결UIManager에서 각 UI 패널(Title, InGame, GameOver, Pause, InGameDescriptionPanel) 관리 및 이벤트 구독 문제를 다루었다.GameManager에서 발생하는 다양한 이벤트(OnTitleScreen, OnGameStart, OnGameOver, 등)에 맞춰 UIManager가 올바르게 구독하고 UI를 업데이트하도록 조정.특히, InGameDescriptionPanel이 게임 시작 시에 자동으로 표시되며, 사용자 입력 후 게임이 진행되도록 처리.2. 게임 상태 관리 개선GameManager에서 게임 중단 및 재개 시 Time.timeScale을 조정하여 게임의 모든 요소가 올바르게 일시 정지 또는 재개되도록 구현.ToggleP.. 더보기