เข้าถึงเซสชันเพื่อสร้าง UI และเอนทิตีเชิงพื้นที่

อุปกรณ์ XR ที่รองรับ
คำแนะนำนี้จะช่วยคุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทนี้
ชุดหูฟัง XR
แว่นตา XR แบบใช้สาย

Session มีอินเทอร์เฟซหลักสำหรับฟังก์ชันการทำงานเชิงพื้นที่สำหรับแอปของคุณ Activity เชิงพื้นที่แต่ละรายการต้องสร้างและเก็บอินสแตนซ์ของ Session ไว้ หลังจากสร้างเซสชันแล้ว แอปจะใช้อินเทอร์เฟซ Session เพื่อสร้างเอนทิตีเนื้อหาเชิงพื้นที่ เช่น แผงหรือโมเดล 3 มิติ รวมถึงตั้งค่าสภาพแวดล้อมเชิงพื้นที่ ระบุตำแหน่งของผู้ใช้ และตรึงเนื้อหาไว้กับโลกจริงได้

เข้าถึงเซสชันจาก Jetpack Compose สำหรับ XR

เมื่อใช้ Jetpack Compose สำหรับ XR ระบบจะสร้างเซสชันให้คุณและเข้าถึงได้โดยใช้ LocalSession.current โปรดดูตัวอย่างต่อไปนี้

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

เข้าถึงเซสชันจาก Jetpack XR Runtime

หากคุณกำลังสร้างเอนทิตีเชิงพื้นที่จากไลบรารี Jetpack SceneCore คุณจะต้องสร้างเซสชัน

หากต้องการสร้างเซสชัน ให้ส่ง Context ไปยังเมธอด create() Context นี้อาจเป็นActivityในอุปกรณ์ XR ที่สมจริงหรืออุปกรณ์เคลื่อนที่ หรือบริบทที่ฉายในแว่นตาอัจฉริยะ

การสร้างเซสชัน 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 อาจเสี่ยงต่อการรั่วไหล

ดูเพิ่มเติม