Table of Contents

Session의 흐름 제어

Session 실행 중 때때로 session 컴포넌트를 수정해야 할 때가 있으며, 이 경우 session을 중지한 후 다시 시작해야 합니다. 때로는 session의 특정 출력을 중지해야 할 수도 있습니다. 본 문서는 session 실행 흐름을 제어하는 방법을 설명합니다.

시작하기 전에

Session 어셈블리

일반적으로 session 시작 시 어셈블리 프로세스가 자동으로 트리거됩니다.

아래 코드는 암시적으로 어셈블리 프로세스를 실행합니다.

Session.StartSession();

가용성 및 장치 지원 확인과 같이 사전에 필요한 경우, Assemble()을 사용하여 수동으로 session 어셈블리 프로세스를 트리거할 수도 있습니다:

StartCoroutine(Session.Assemble());
참고

Assemble()은 코루틴을 반환하며, StartCoroutine(IEnumerator)를 통해 시작해야 합니다.

Session 시작

AutoStart는 session 자동 시작 여부를 제어합니다. AutoStarttrue(기본값)인 경우, MonoBehaviour.Start() 시점에 session이 자동으로 시작됩니다.

session을 수동으로 시작할 수도 있으며, 이 경우 사전에 AutoStartfalse로 수정해야 합니다. 그런 다음 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가 제어하는 노드의 transform 등을 포함).

Session.enabled = false;

물리적 카메라 이미지 렌더링 중지

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에 의해 수행됩니다.

다음 단계