ทำความเข้าใจตัวแก้ไขพื้นที่ย่อย

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

A SubspaceModifier มีลักษณะคล้ายกับ ตัวปรับแต่ง Compose สำหรับ Composables ใน Subspace SubspaceModifier ช่วยให้คุณจัดการ Composables ในพื้นที่ 3 มิติได้ ซึ่งจะช่วยให้คุณจัดตำแหน่ง หมุน และเพิ่มลักษณะการทำงานให้กับโหนดเลย์เอาต์ 3 มิติได้

การจัดวาง

โดยค่าเริ่มต้น Subspace จะถูกจำกัดด้วยพื้นที่ที่แนะนำสำหรับการดูแอป ระบบจะใช้ขอบเขตเหล่านี้เมื่อวัดเลย์เอาต์ของคอมโพเนนต์ Subspace ซึ่งคล้ายกับขอบเขตในเลย์เอาต์ Compose แบบ 2 มิติ

ขอบเขตการเติม

ตัวปรับแต่ง fillMaxSize, fillMaxWidth, fillMaxHeight และ fillMaxDepth จะทำให้เนื้อหาเติมขอบเขตขององค์ประกอบระดับบน (บางส่วน) การใช้ตัวปรับแต่งการเติมจะช่วยให้แอปจัดวางเนื้อหาที่เป็นอิสระจากลักษณะการแสดงผลของอุปกรณ์ XR ได้

ตั้งค่าขนาดและขนาดที่ต้องการ

ตัวปรับแต่ง size, width, height และ depth จะประกาศขนาดที่ต้องการของเนื้อหา หากต้องการประกาศขนาดที่แน่นอนของ เนื้อหา ให้ใช้ requiredSize, requiredWidth, requiredHeight และ requiredDepth คุณต้องระบุหน่วยเหล่านี้เป็น dp หากต้องการแปลงจากเมตรเป็น dp ให้ใช้ Meter.toDp()

จัดตำแหน่ง Composables

offset

ตัวปรับแต่ง offset จะย้าย Composables ในพื้นที่ 3 มิติไปตามแกน x, y, และ z คุณต้องระบุหน่วยเหล่านี้เป็น dp หากต้องการแปลงจากเมตรเป็น dp ให้ใช้ Meter.toDp()

rotate

ตัวปรับแต่ง rotate จะหมุน Composables ที่ระบุในพื้นที่ คุณสามารถระบุทิศทางและองศาการหมุนได้หลายวิธี ดังนี้

  • ใช้ Pitch, Yaw และ Roll ซึ่งจะระบุการหมุนรอบแกน x, y และ z ตามลำดับ
  • ใช้ axisAngle ซึ่งเป็น Vector3 ที่แสดงแกนการหมุนและองศาที่ควรหมุนรอบแกน
  • ใช้ Quaternion ที่แสดงการหมุน

rotateToLookAtUser

ตัวปรับแต่ง rotateToLookAtUser จะหมุน เนื้อหาอย่างต่อเนื่องเพื่อให้หันหน้าเข้าหาผู้ใช้ตลอดเวลา นอกจากนี้ คุณยังใช้ตัวปรับแต่งนี้เพื่อให้ได้เอฟเฟกต์ "ป้ายโฆษณา" ซึ่งเนื้อหาจะหมุนเพื่อหันหน้าเข้าหาผู้ใช้บนแกน Y ในขณะที่ยังคงตั้งตรงและอยู่ในแนวเดียวกับแรงโน้มถ่วง หากต้องการทำเช่นนี้ ให้รวมตัวปรับแต่ง rotateToLookAtUser กับ ตัวปรับแต่ง gravityAligned

ย้ายและปรับขนาดด้วย Composables

อนุญาตให้ผู้ใช้จัดการตำแหน่งและขนาดของออบเจ็กต์ในพื้นที่ 3 มิติได้โดยตรง คุณสามารถเพิ่มตัวปรับแต่งเหล่านี้ลงในคอมโพเนนต์แต่ละรายการ (เช่น SpatialPanel), Subspace และคอมโพเนนต์เลย์เอาต์เชิงพื้นที่ (เช่น SpatialRow หรือ SpatialColumn)

ย้ายองค์ประกอบ

ตัวปรับแต่งที่ย้ายได้ช่วยให้ผู้ใช้จับและจัดตำแหน่งองค์ประกอบ Subspace ใหม่ได้

  • transformingMovable: ใช้ตัวปรับแต่งนี้สำหรับการเคลื่อนไหวมาตรฐาน ตัวปรับแต่งนี้จะกำหนดค่าองค์ประกอบให้โต้ตอบและย้ายได้โดยผู้ใช้ ระบบจะคำนวณและใช้ท่าทางและขนาดใหม่โดยอัตโนมัติตามข้อมูลจากผู้ใช้

  • movable: ใช้ตัวปรับแต่งนี้เพื่อกำหนดลักษณะการเคลื่อนไหวที่กำหนดเอง แม้ว่าระบบจะให้ความสามารถในการเคลื่อนไหว แต่คุณต้องใช้เหตุการณ์ onMove ที่จำเป็นและใช้ผลลัพธ์ ตัวปรับแต่งนี้มีประโยชน์สำหรับการจำกัดการเคลื่อนไหวหรือสร้างการเคลื่อนไหวที่กำหนดเองในแอป

ปรับขนาดองค์ประกอบ

ตัวปรับแต่งที่ปรับขนาดได้ช่วยให้ผู้ใช้จับและปรับขนาดองค์ประกอบ Subspace ได้

  • transformingResizable: ใช้ตัวปรับแต่งนี้สำหรับการปรับขนาดที่ระบบจัดการ ตัวปรับแต่งนี้จะจัดการท่าทางสัมผัสการปรับขนาดโดยอัตโนมัติและใช้ขนาดใหม่ที่ผู้ใช้ระบุ

  • resizable: ใช้ตัวปรับแต่งนี้สำหรับตรรกะการปรับขนาดที่กำหนดเอง แม้ว่าระบบจะให้ความสามารถในการปรับขนาด แต่คุณต้องใช้เหตุการณ์ onResize และใช้ผลลัพธ์ ตัวปรับแต่งนี้มีประโยชน์สำหรับสถานการณ์ที่ซับซ้อน เช่น การรักษาสัดส่วนภาพที่เฉพาะเจาะจงหรือการปรับเลย์เอาต์โดยรวมของคอมโพเนนต์อื่นๆ อีกครั้งหลังจากปรับขนาดเสร็จสิ้น

เปลี่ยนลักษณะที่ปรากฏของ Composables

alpha

ตัวปรับแต่ง alpha จะกำหนดความทึบขององค์ประกอบและองค์ประกอบย่อย โดย 0f หมายถึงโปร่งใสโดยสมบูรณ์ และ 1.0f หมายถึงทึบแสงโดยสมบูรณ์

scale

ตัวปรับแต่ง scale จะปรับขนาดเนื้อหาของ Composables ตามแกน แนวนอน แนวตั้ง และแกนความลึก

การทดสอบและการช่วยเหลือพิเศษ

semantics

ตัวปรับแต่ง semantics จะเพิ่มความหมายให้กับโหนดเลย์เอาต์เพื่อใช้ในการ ทดสอบและการช่วยเหลือพิเศษ ดู ความหมายใน Jetpack Compose และ SemanticsModifier

testTag

ตัวปรับแต่ง testTag เป็นคำย่อของ SemanticsPropertyReceiver.testTag ซึ่งช่วยให้เฟรมเวิร์กการทดสอบค้นหา องค์ประกอบในการทดสอบได้