ตัวปรับแต่งพื้นที่ย่อย

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

การจัดวาง

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

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

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

ตั้งค่าขนาดและขนาดที่จำเป็น

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

คอมโพเนนต์ตำแหน่ง

offset

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

rotate

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

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

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

alpha

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

scale

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

เพิ่มลักษณะการทำงานให้กับ Composable

resizable

เมื่อเปิดใช้ตัวแก้ไข resizable ระบบจะแสดงตัวควบคุม UI ที่ลากได้ซึ่งอนุญาตให้ผู้ใช้ปรับขนาดองค์ประกอบ ซึ่งคล้ายกับการใช้ ResizableComponent ใน Entity

movable

เมื่อเปิดใช้ตัวแก้ไข movable ระบบจะเพิ่มตัวควบคุม UI ลงใน คอมโพเนนต์ซึ่งจะช่วยให้ผู้ใช้ย้ายองค์ประกอบในพื้นที่ 3 มิติได้ ซึ่งคล้ายกับการใช้ MovableComponent ใน Entity

movableโหนดเลย์เอาต์จะระบุประเภทระนาบที่ควรยึด เมื่อมีการย้ายได้ เช่น หากต้องการสร้าง SpatialPanel ที่สแนปกับตาราง ให้ทำดังนี้

SpatialPanel(
  modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
  // This panel snaps to available planes that are detected as a TABLE.
}

การสแนปกับระนาบต้องได้รับandroid.permission.SCENE_UNDERSTANDING_COARSE สิทธิ์รันไทม์สำหรับแอป

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

semantics

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

testTag

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