Unity SceneManager, 버그잡기

장현태입니다·2025년 4월 22일
post-thumbnail

SceneManager

유니티에서 씬을 관리하는 기능을 하며, 씬매니저를 사용하기전 제일 처음 작업해야하는 일은 File -> Builde Settings -> scene 넣어주기를 먼저 해야한다.

이렇게 넣은 씬들은 코드의 동작으로 오른쪽의 인덱스나 씬의 이름으로 호출 가능하다.

다음 함수는 잘못된 형식이지만 설명을 위해 같이 작성했다.
두개 다 씬을 호출하는 역할을 하지만 LoadScene은 씬을 호출할 때 다른 일을 진행 할 수 없다. 반면에 LoadSceneAsync의 경우 비동기적인 씬호출로 일이 진행되는동안 다른 작업을 허용하게 하도록한다 예를들어 로딩 화면을 통해 자연스러운 씬전환을 가능하도록 해준다.

이 때 LoadSceneMode.Additive를 사용할 경우 이전의 데이터를 유지하고 다음씬으로 넘어가는 역할을 한다.

LoadSceneAsync에 대해 더 자세히 살펴보자면 AsyncOperation을 사용하여 비동기씬의 더 부드러운 씬전환 방법을 제공한다

실습)

비동기 씬전환을 이용해 이전씬과 다음 씬을 연결한 후 trigger를 통해 씬의 연결과 연결을 끊는것을 구현했다.

connectNextScene에서 trigger발생시 다음씬을 연결해주도록 설정하였다.

이렇게 다음씬의 로딩을 연결하여 구현하게되면 다음 씬의 오브젝트가 미리 구현된것이 아니라 씬이 생성되자마자 적(기타 오브젝트)과 내가 씬 생성 했을때의 상호작용이 가능하다

그리고 ontriggerExit을 통해 콜라이더에 나왔을경우 씬이 사라지는 기능을 볼 수 있다. 나왔을경우 다시 콜라이더와 trigger 발생시 초기화된 다음씬을 볼 수 있다.

버그잡기 및 최적화

1) Unity에서 Profiler이란 기능을 제공한다

원하는 지점에서 오브젝트로 인한 지연과 어느 부분을 최적화 해야할지 보여준다

2) 중단점
c# 콘솔에서도 중단점을 사용하는데 유니티에서도 중단점을 이용해 버그를 잡을 수 있다

오른쪽 하단에 보면 벌레모양이 있는데 처음에는 표시가없다.

  1. 여기서 유니티 해당 스크립트에서 unity에 연결을 눌러준다.
  1. Enable debugging for this session을 눌러준다

  1. 파란색으로 벌레가 변했다.

  2. 중단점을 연결해준다

  1. 문제가되는 지점의 정보를 확인가능하다

0개의 댓글