728x90

GameDevelop 96

FadeIn FadeOut

목표 시나리오게임 시작 시:검은 화면 → FadeIn → 첫 맵 등장맵 이동 시:FadeOut → 기존 맵 Deactivate맵 교체 → FadeIn모든 맵 클리어 시:FadeOut → 엔딩 처리 (씬 전환 or UI) 구조 확인MapManager.cs 주요 흐름 정리// 플레이어 생성 및 첫 맵 전환private void Start() { // playerInstance = 생성 또는 찾기 // StartCoroutine(TransitionToNextMap());}// 외부에서 다음 맵 호출public void GoToNextMap(){ StartCoroutine(TransitionToNextMap());} // 맵 전환의 핵심 루틴private IEnumerator Transitio..

[Unity 트러블슈팅] Wave/ZoneSpawner에서 Update 중복 호출로 인한 맵 클리어 문제 해결

문제 상황WaveSpawner와 ZoneSpawner가 동시에 Update를 돌리다 보니 맵 클리어가 여러 번 호출되는 현상이 발생했다. 증상웨이브를 클리어하면 MapManager.GoToNextMap()이 여러 번 실행됨ZoneSpawner가 중간에 활성화되어버림맵이 두 번 비활성화되고 다음 맵으로 넘어감적이 스폰되기도 전에 클리어 처리됨 원인분석문제를 추적해본 결과Update()에서 aliveChecker.AreAllDead()를 매 프레임 체크 중웨이브나 존을 클리어해도 Update()가 계속 돌고 있었음따라서 OnAllWavesCleared() 혹은 OnAllZonesCleared()가 여러 번 연속 실행이 때문에 로그에 이렇게 찍혔다.👆 중복 비활성화 및 중복 클리어 로그 해석Zone 1이..

유니티 로그라이크 맵 관리 시스템 제작

오늘은 맵을 여러 개 순서대로 관리하는 MapManager 구조를 만들었다. 주요 내용:✅ MapManager맵을 배열 순서대로 하나씩 켜고 끔플레이어 위치와 카메라 경계 자동 변경ScreenFader로 페이드인/아웃 처리Update()에서 현재 맵이 클리어됐는지 직접 체크✅ MapComponent각 맵의 데이터(스폰 포인트, 카메라 바운드, 스포너들)를 보관Activate()로 웨이브/존 스포너를 시작Deactivate()로 맵 비활성화✅ WaveSpawner & ZoneTriggerSpawner스폰 로직 담당IsCleared 플래그로 클리어 상태 저장MapManager가 상태를 보고 진행 판단✅ 핵심 흐름MapManager에서 첫 맵 활성화스포너들이 적 생성적이 다 죽으면 IsCleared = tru..

Unity 2D 게임 개발일지 – 카메라 전환 & 맵 이동 + 트러블슈팅

오늘은 Unity에서 맵 클리어 시 플레이어를 다음 구역으로 이동하고 화면 전환(Fade In/Out)을 구현했다.진행하면서 발생한 문제들도 함께 기록했다. 1. 목표 기능몬스터를 모두 처치하면 다음 구역으로 이동씬을 새로 로드하지 않고 같은 씬에서 플레이어 위치만 변경카메라는 플레이어를 계속 따라가도록 유지화면은 페이드 아웃/인으로 부드럽게 전환 2. 구현 흐름WaveSpawner에 다음 맵 이동 로직 추가몬스터를 모두 처치했을 때 호출되는 OnAllWavesCleared()에서 다음 맵으로 이동 코루틴을 실행하도록 했다.private void OnAllWavesCleared() { Debug.Log("맵 클리어, 다음맵으로 이동"); triggered = false; St..

Unity 2D 게임 개발 일지 – Cinemachine 카메라 세팅 & 맵 경계 제한

오늘은 Unity에서 Cinemachine을 사용해 카메라를 플레이어에 맞춰 따라가고,맵 바깥이 보이지 않도록 제한하는 방법을 설정했다.1. Cinemachine 카메라 설정하기게임에 카메라를 적용하기 위해 CinemachineCamera를 사용했다. ✅ 플레이어를 따라가도록 설정CinemachineCamera의 Tracking Target에 플레이어 오브젝트 지정.Position Composer에서 Target Offset의 Y 값을 올려 카메라가 살짝 위를 바라보게 설정. Target Offset X: 0 Y: 2 Z: 0 이렇게 하면 카메라가 플레이어보다 살짝 위쪽 시야를 보여준다. ✅ Damping 조정Damping X/Y 값으로 따라오는 부드러움을 조절.0: 즉시 따라옴1: 부드럽게 따라옴 2...

Unity 2D 게임 개발 일지 - 웨이브 스폰, 맵 클리어, 점프 오브젝트 구현

오늘은 유니티 2D 게임에서 적 웨이브 스폰, 맵 클리어 처리, 그리고 플레이어를 점프시키는 오브젝트까지 여러 기능을 구현했다. 웨이브 스폰 시스템 개선WaveSpawner를 만들어서 플레이어가 특정 구역에 들어가면 순차적으로 적들을 스폰하도록 했다. ✅ 주요 기능여러 웨이브를 순서대로 생성각 웨이브 클리어 후 딜레이를 두고 다음 웨이브 시작마지막 웨이브 클리어 시 맵 클리어 처리 맵 클리어 처리마지막 웨이브를 끝내면 OnAllWavesCleared() 메서드를 호출하여 클리어를 처리하도록 구현했다. ✅ 주요 기능맵 클리어 로그 출력현재 씬 이름 가져오기씬 다시 로드하여 상태 초기화private void OnAllWavesCleared(){ Debug.Log("맵 클리어! 테스트용으로 현재씬 다시 ..

[트러블슈팅] 유니티 2D 게임에서 플레이어가 벽에 붙는 문제 해결법

2D 게임을 만들다 보면, 플레이어가 벽에 닿았을 때 마치 슬로우 모션처럼 벽에 달라붙는 현상을 겪게 된다.이 문제의 원인은 바로 Collider의 마찰력(Friction) 때문이다. 문제 원인Friction = 0.4 이게 바로 “벽에 달라붙는” 주요 원인이다.마찰력이 0.4로 설정되어 있어서, 플레이어가 벽에 닿으면 마찰로 인해 슬로우 모션처럼 붙어 움직이지 않는 상태가 된다. 해결 방법: 마찰 없는 Material 적용하기 1️⃣ 새로운 Physics Material 2D 생성Project 창에서 Assets 폴더 우클릭Create > Physics Material 2D 선택이름을 NoFriction으로 지정2️⃣ Material 설정 변경생성한 NoFriction을 선택하고 Inspector에서..

728x90