728x90

전체 글 192

Unity 타일맵 구조 정리 & 작업 일지 (Middle4 타일맵 구성)

오늘은 Unity에서 새 타일맵 씬인 Middle4를 구성했다.아직 완성은 아니지만, 전체적인 구조를 잡아두고 앞으로 확장할 수 있도록 정리해두었다. 📁 타일맵 계층 구조Middle4├── CameraBounds├── AttackableObject├── JumpPad└── Graphics ├── ForeDeco ├── BackDeco ├── Ground ├── Wall ├── platform └── BackGround ├── pxArt_B ├── pxArt_tree1 └── pxArt_tree2 주요 내용Middle4는 맵으로 플레이어가 탐험할 중간 구간 역할을 함Graphics 하위에 실제 렌더링에 관여하는 타일맵 요소들을 나눠둠G..

Unity 배경에 깊이감 - Parallax(패럴럭스) 스크립트로 부드러운 배경 스크롤

💡 Parallax란?Parallax(패럴럭스) 효과는 카메라가 움직일 때 배경이 느리게 따라오면서 깊이감(입체감) 을 만들어내는 시각적 기법이다."앞에 있는 건 빨리 움직이고,뒤에 있는 건 천천히 움직이는"게임 속 배경 움직임 연출 스크립트using System.Collections;using System.Collections.Generic;using UnityEngine;public class ParallaxLayer : MonoBehaviour{ [SerializeField] private Transform _cameraTransform; [SerializeField, Range(0f, 1f)] private float _parallaxFactorX = 0.5f; [Seriali..

카테고리 없음 2025.07.10

Unity 트러블슈팅: 두번째 맵에서 포탈이 작동하지 않는오류 & 플레이어 처음 두번 스폰되는 문제

Problem — 어떤 문제가 있었나?맵에서 모든 적 처치 후 포탈이 활성화되어야 하는데, 일부 맵에서는 포탈이 작동하지 않고 F 키 입력도 무시되는 현상이 발생했다.WaveSpawner에서는 잘 작동했지만, 2번째 맵인 ZoneSpawner에서는 포탈이 비활성 상태로 유지됨. 1. 두번째 맵에서 포탈이 작동하지 않는오류Cause — 원인모든 맵에 PortalTrigger가 존재했지만, FindObjectOfType() 방식으로 포탈을 찾다 보니 이전 맵의 포탈 오브젝트가 활성화되어 작동하는 문제가 발생했다.결과적으로 현재 맵의 포탈이 아닌 다른 포탈을 참조하고 있었기 때문에 F 키 입력을 받아도 아무 일도 일어나지 않았다. Try — 어떻게 해결했나?✅ 해결 핵심:MapComponent에서 포탈을 각 ..

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..

728x90