ARCore สำหรับ Jetpack XR

นำเนื้อหาดิจิทัลมาสู่โลกแห่งความเป็นจริงด้วยความสามารถในการรับรู้
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
12 ธันวาคม 2024 - - - 1.0.0-alpha01

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มการพึ่งพา ARCore สำหรับ Jetpack XR คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ใน ที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล

ดึงดูด

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา

รุ่น 1.0

เวอร์ชัน 1.0.0-alpha01

12 ธันวาคม 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 ได้รับการปล่อยแล้ว

ฟีเจอร์ของการเผยแพร่ครั้งแรก

ไลบรารี ARCore สำหรับ Jetpack XR สร้างขึ้นโดยได้รับแรงบันดาลใจจากไลบรารี ARCore ที่มีอยู่ ซึ่งให้ความสามารถในการผสมผสานเนื้อหาดิจิทัลเข้ากับโลกแห่งความจริง คลังนี้ประกอบด้วยการติดตามการเคลื่อนไหว หมุดยึดถาวร การทดสอบการตี และระบุระนาบด้วยการติดป้ายกำกับเชิงความหมาย (เช่น พื้น ผนัง และโต๊ะ) ดูคู่มือนักพัฒนาซอฟต์แวร์เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน ARCore สำหรับ Jetpack XR

  • Session: ARCore สำหรับ Jetpack XR ใช้รันไทม์ Jetpack XR ในการขับเคลื่อนฟังก์ชันการทำงาน คุณจะใช้เซสชันเพื่อโต้ตอบกับ ARCore สําหรับ Jetpack XR API ส่วนใหญ่ ดังนั้นโปรดดูเอกสารประกอบของ API ดังกล่าว

  • Plane: ใช้เครื่องบินเพื่อทําความเข้าใจโลกรอบตัวคุณ เครื่องบินแต่ละลำมี Label ที่อธิบายความหมายของเครื่องบิน คุณสามารถใช้ subscribe เพื่อรับการแจ้งเตือนเกี่ยวกับเครื่องบินที่ตรวจพบล่าสุด หรือ state เพื่อรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงของเครื่องบินหนึ่งๆ

  • Anchor: ลิงก์ระหว่างวัตถุเสมือนกับสถานที่จริง คุณแนบจุดยึดกับตำแหน่งที่เฉพาะเจาะจงในพื้นที่ (โดยใช้ create) หรือ Trackable (โดยใช้ createAnchor) ได้

    • คุณนําหมุดมาใช้ซ้ำในเซสชันต่างๆ ได้ คุณสามารถใช้ persist เพื่อจัดเก็บ getPersistedAnchorUuids เพื่อแจกแจง และ load เพื่อเรียกข้อมูล โปรดunpersist อุปกรณ์เมื่อไม่ได้ใช้งานแล้ว

    • อุปกรณ์ยึดจะทำงานร่วมกันได้ระหว่าง ARCore สำหรับ Jetpack XR กับ Jetpack SceneCore คุณสามารถสร้าง AnchorEntity โดยใช้ Anchor หรือหากมี AnchorEntity อยู่แล้ว คุณก็ใช้ getAnchor เพื่อดึงข้อมูล Anchor สนับสนุนได้

    • เสนอการโต้ตอบของผู้ใช้อย่างเป็นธรรมชาติโดยใช้ hitTest HitTest ใช้ Ray เพื่อระบุเนื้อหาที่ตัดกัน และสร้าง Anchor จากตําแหน่งนั้น ลองทำ HitTest จาก InputEvent

ปัญหาที่ทราบ

  • อาจมีความล่าช้าระหว่างการเรียกใช้ unpersist กับการนำ UUID ของ unpersist ออกจากผลลัพธ์ที่ getPersistedAnchorUuids แสดง

  • create จะไม่ตรวจสอบว่าระบบมีทรัพยากรเพียงพอที่จะแสดงผลหมุดใหม่ การสร้างหมุดมากเกินไปอาจทําให้ระบบขัดข้อง

  • ขณะนี้ระบบยังไม่รองรับการคงที่ของหมุดที่คงที่และไม่ได้คงที่ไว้ก่อนหน้านี้

  • ระบบรองรับการใช้งานในโปรแกรมจำลอง แต่ลักษณะการทำงานอาจไม่เสถียรเท่ากับเมื่อใช้งานในอุปกรณ์จริง โดยเฉพาะอย่างยิ่ง การเรียก create อาจไม่สําเร็จเนื่องจากข้อผิดพลาดของโค้ดเนทีฟและสิ้นสุดกิจกรรมทันที

  • ในบางกรณี ระบบอาจแสดงข้อผิดพลาด RuntimeException เมื่อเรียกใช้ persist พร้อมข้อความ "ไม่ได้เก็บข้อมูลหมุด" ในกรณีดังกล่าว ฟังก์ชันจะยังคงทำงานสำเร็จและระบบจะเก็บข้อมูลหมุดไว้ เราขอแนะนําให้ตัดการเรียกใช้ persist ด้วยบล็อก try เพื่อใช้เป็นวิธีแก้ปัญหาชั่วคราว