공간화된 UI 및 항목을 만들기 위한 세션에 액세스

적용 가능한 XR 기기
이 가이드는 이러한 유형의 XR 기기를 위한 환경을 빌드하는 데 도움이 됩니다.
XR 헤드셋
유선 XR 글라스

Session는 앱의 공간화된 기능에 대한 기본 인터페이스를 제공합니다. 공간화된 각 Activity는 Session의 인스턴스를 만들고 보유해야 합니다. 앱에서 세션을 만든 후 Session 인터페이스를 사용하여 패널이나 3D 모델과 같은 공간화된 콘텐츠 항목을 만들고, 공간 환경을 설정하고, 사용자 위치를 식별하고, 실제 세계에 콘텐츠를 고정할 수 있습니다.

XR용 Jetpack Compose에서 세션에 액세스

XR용 Jetpack Compose를 사용하면 세션이 자동으로 생성되며 LocalSession.current를 사용하여 액세스할 수 있습니다. 아래 예시를 참조하세요.

@Composable
fun ComposableUsingSession() {
    val session = LocalSession.current
}

Jetpack XR 런타임에서 세션에 액세스하기

Jetpack SceneCore 라이브러리에서 공간화된 항목을 만드는 경우 세션을 만들어야 합니다.

세션을 만들려면 Context를 create() 메서드에 전달합니다. 이 Context는 몰입형 XR 기기 또는 휴대기기의 Activity이거나 지능형 글라스의 투사된 컨텍스트일 수 있습니다.

ARCore 세션을 만드는 작업은 비용이 많이 들 수 있으므로 다음 예와 같이 백그라운드에서 처리해야 합니다.

lifecycleScope.launch {
    when (val result = Session.create(context)) {
        is SessionCreateSuccess -> {
            val xrSession = result.session
            // ...
        }
        else ->
            TODO(/* A different unhandled exception was thrown. */)
    }
}

create() 함수는 선택적 LifecycleOwner 매개변수를 사용할 수 있으며, 이를 통해 세션의 수명 주기를 다른 LifecycleOwner로 관리할 수 있습니다. LifecycleOwner는 제공된 컨텍스트 범위 내에서 수명 주기를 시작하고 종료해야 합니다. 그렇지 않으면 Session가 유출될 수 있습니다.

참고 항목