session 흐름 제어
session 실행 중에는 때때로 session 컴포넌트를 수정해야 합니다. 이 경우 session을 중지한 뒤 다시 시작해야 합니다. 때로는 session의 일부 출력을 중지해야 할 수도 있습니다. 이 문서에서는 session 실행 흐름을 제어하는 방법을 설명합니다.
시작하기 전에
- ARSession 개요를 통해 session의 기본 개념, 구성 및 작업 흐름을 이해합니다
- session 생성 방법을 이해합니다
session 조립
일반적으로 session 시작 시 조립 과정이 자동으로 트리거됩니다.
다음 코드는 조립 과정을 암시적으로 실행합니다.
Session.StartSession();
경우에 따라, 예를 들어 미리 가용성과 장치 지원을 판단해야 하는 경우 Assemble()을 사용하여 session 조립 과정을 수동으로 트리거할 수도 있습니다.
StartCoroutine(Session.Assemble());
참고
Assemble()은 코루틴을 반환하며, StartCoroutine(IEnumerator)을 통해 시작해야 합니다.
session 시작
AutoStart는 session이 자동으로 시작되는지 제어합니다. AutoStart가 true(기본값)이면 MonoBehaviour.Start() 시 session이 자동으로 시작됩니다.
Session은 수동으로 시작할 수도 있습니다. 이를 위해서는 미리 AutoStart를 false로 수정해야 합니다. 그런 다음 StartSession()을 사용하여 session을 시작할 수 있습니다.
Session.StartSession();
session 중지
StopSession(bool)을 사용하여 session을 중지할 수 있습니다.
Session.StopSession(keepLastFrame);
keepLastFrame 매개변수는 session 중지 후 마지막 프레임의 물리 카메라 이미지를 유지할지 여부를 제어합니다. 서로 다른 session 간 전환이 필요할 때 유용하며 화면 깜박임을 방지할 수 있습니다.
참고
keepLastFrame은 EasyAR가 화면 그리기를 수행하는 session만 제어할 수 있습니다. 일반적으로 AR Foundation 또는 헤드셋을 사용할 때 이 매개변수는 유효하지 않습니다.
session 출력 중지
session 실행 중에는 enabled를 통해 session 출력을 제어할 수 있습니다.
다음 코드는 session의 모든 출력을 중지할 수 있습니다. 이때 session은 여전히 실행 중이지만, EasyAR가 그리는 물리 카메라 화면과 EasyAR가 제어하는 모든 노드의 transform 등을 포함하여 어떤 내용도 업데이트되지 않습니다.
Session.enabled = false;
session의 물리 카메라 이미지 그리기 중지
ARAssembly.CameraImageRenderer를 사용하여 물리 카메라 이미지 그리기를 제어할 수 있습니다.
다음 코드는 물리 카메라 이미지 그리기를 중지할 수 있습니다.
if (Session.Assembly != null && Session.Assembly.CameraImageRenderer.OnSome)
{
Session.Assembly.CameraImageRenderer.Value.enabled = false;
}
여기서는 먼저 ARAssembly.CameraImageRenderer가 존재하는지 확인해야 합니다.
참고
ARAssembly.CameraImageRenderer는 EasyAR가 화면 그리기를 수행하는 session에서만 유효합니다. 일반적으로 AR Foundation 또는 헤드셋을 사용할 때는 유효하지 않습니다. 이 경우 물리 카메라 화면 그리기는 AR Foundation 또는 헤드셋 SDK가 완료합니다.
다음 단계
- AR 기능 컴포넌트 접근을 시도하여 AR 기능의 더 많은 제어 방법을 알아봅니다
- session의 실행 결과 가져오기 방법을 알아봅니다
- 가용성과 장치 지원 판단 방법을 알아봅니다