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가 그리는 물리 카메라 화면과 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가 완료합니다.

다음 단계