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 ซึ่งช่วยให้เฟรมเวิร์กการทดสอบค้นหา
องค์ประกอบในการทดสอบได้