Contents
접기
728x90
문제상황
복합 레이어 배경(pxArt_B, pxArt_tree1 등) 구조일 경우, 단순히 스프라이트만 교체하는 것이 아닌 게임 오브젝트를 교체해야한다.
비슷한 상황에서 배경이 SceneView에서는 보이지만 Game View에서 안 보이는 문제를 겪었고, 트러블슈팅 과정을 공유해보려고 한다.
목표
- 맵마다 전체 배경 오브젝트를 통째로 교체
- pxArt_tree1, pxArt_tree2 등 여러 도트 Sprite로 구성된 배경 구조 사용
- 단순 Sprite 교체 ❌ → 배경 GameObject 프리팹 교체 ⭕️
기능구현
1. 맵 프리팹에서 배경 프리팹 분리
맵 프리팹 내부에 배경을 넣는 게 아니라, MapComponent에 배경 프리팹만 따로 연결한다.
public class MapComponent : MonoBehaviour
{
public Transform playerSpawnPoint;
public PolygonCollider2D cameraBounds;
public Transform mapRoot;
public GameObject backgroundPrefab;
}
2. 배경이 따라다닐 Anchor 설정
카메라 아래에 빈 오브젝트 BackgroundAnchor를 만들어서 배경을 여기에 붙여준다.
[SerializeField] private Transform backgroundFollowParent;
private GameObject _currentBackground;
3. MapManager에서 배경 교체 처리
// 기존 배경 제거
if (_currentBackground != null)
Destroy(_currentBackground);
// 새 배경 생성 및 따라붙이기
if (map.backgroundPrefab != null && backgroundFollowParent != null)
{
_currentBackground = Instantiate(map.backgroundPrefab, backgroundFollowParent);
_currentBackground.transform.localPosition = Vector3.zero;
}
👉 ActivateMapRoutine() 메서드 안에, 플레이어 위치 설정한 뒤 넣는 게 좋다.
해결 전략
트러블슈팅 핵심 체크리스트
체크 항목 | 설명 | 해결 방법 |
Culling Mask | 카메라가 해당 배경 레이어를 렌더링하는가? | Main Camera > Culling Mask에 배경 레이어 포함되어야 함 |
Order in Layer | Sprite가 가장 뒤에 그려지는가? | 배경 레이어의 Order in Layer는 -10 이하 추천 |
Z 위치 문제 | 배경 오브젝트가 카메라 뒤에 있는가? | Z = 0 이상이면 카메라(Far = 1000)에서 보이지 않을 수 있음 |
Scene 보기 방식 | Scene 뷰에선 보이는데 Game 뷰에선 안 보이는가? | Scene 뷰를 3D로 전환해서 실제 Z 깊이 체크 |
위 체크리스트 중 Scene보기 방식 - 3D뷰로 전환한 후, 카메라 뒤로 제일 뒷배경을 옮기는 방법으로 해결했다.
728x90
'GameDevelop > Unity팀프로젝트' 카테고리의 다른 글
[Unity] Dialogue System으로 NPC 대화 시스템 구현 (0) | 2025.07.18 |
---|---|
[Unity] 마스터오디오 + Settings UI 구현, 사운드 설정 기능 (1) | 2025.07.17 |
중간발표 후 피드백 기록 (2) | 2025.07.15 |
Unity 타일맵 구조 정리 & 작업 일지 (Middle4 타일맵 구성) (0) | 2025.07.11 |
Unity 트러블슈팅: 두번째 맵에서 포탈이 작동하지 않는오류 & 플레이어 처음 두번 스폰되는 문제 (1) | 2025.07.09 |