SubspaceModifier
דומה לCompose modifier עבור קומפוזבלים ב-Subspace
. SubspaceModifier
מאפשרת לכם לשנות את הקומפוזיציות במרחב תלת-ממדי, ולעזור לכם למקם, לסובב ולהוסיף התנהגויות לצמתי פריסה תלת-ממדיים.
פריסה
כברירת מחדל, Subspace
מוגבל על ידי המרחב המומלץ לצפייה באפליקציה. המגבלות האלה משמשות למדידת הפריסה של רכיבי המרחב המשני, בדומה למגבלות בפריסות דו-ממדיות של Compose.
מילוי גבולות
המשנים fillMaxSize
, fillMaxWidth
, fillMaxHeight
ו-fillMaxDepth
גורמים לתוכן למלא (באופן חלקי) את הגבולות של רכיב האב שלו.
שימוש במאפייני שינוי של מילוי עוזר לאפליקציה לפרוס תוכן שלא תלוי במאפייני התצוגה של מכשיר ה-XR.
הגדרת הגודל והגודל הנדרש
המשנים size
, width
, height
ו-depth
מגדירים את הגודל המועדף של התוכן. כדי לציין את הגודל המדויק של התוכן, משתמשים בתגי requiredSize
, requiredWidth
, requiredHeight
ו-requiredDepth
. צריך לציין את היחידות האלה במאפיין dp
. כדי להמיר ממטרים ל-dp, משתמשים ב-Meter.toDp()
.
רכיבי קומפוזיציה של מיקום
offset
המשנה offset
מעביר את הרכיב הניתן להרכבה במרחב תלת-ממדי לאורך הצירים x
, y
ו-z
. צריך לציין את היחידות האלה ב-dp
. כדי להמיר ממטרים ל-dp, משתמשים ב-Meter.toDp()
.
rotate
המשנה rotate
מסובב את הרכיב הניתן להרכבה שצוין במרחב. אפשר לציין את כיוון הסיבוב ואת זווית הסיבוב בכמה דרכים:
- שימוש ב-pitch, yaw ו-roll, שמציינים את הסיבוב סביב הצירים
x
,y
ו-z
בהתאמה, - שימוש ב-
axisAngle
, שהואVector3
שמייצג את ציר הסיבוב, ואת מספר המעלות שצריך לסובב סביבו, - שימוש ב-
Quaternion
שמייצג את הסבב.
שינוי המראה של רכיבים שאפשר להרכיב
alpha
המשנה alpha
מגדיר את האטימות של הרכיב ושל רכיבי הצאצא שלו,
כאשר 0f
מייצג שקיפות מלאה ו-1.0f
מייצג אטימות מלאה.
scale
המשנה scale
משנה את קנה המידה של התוכן של הרכיב הניתן להרכבה לאורך הצירים האופקי, האנכי והעומק.
הוספת התנהגויות לרכיבים הניתנים להרכבה
resizable
כשהמשנה resizable
מופעל, מוצגים אמצעי בקרה של ממשק משתמש שניתנים לגרירה, שמאפשרים למשתמש לשנות את גודל הרכיב. זה דומה לשימוש ב-ResizableComponent
ב-Entity
.
movable
כשהמשנה movable
מופעל, פקדים של ממשק המשתמש מתווספים לרכיב ומאפשרים למשתמש להזיז את הרכיב במרחב תלת-ממדי. התהליך הזה דומה לשימוש ב-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
מוסיף סמנטיקה לצומת הפריסה, לשימוש בבדיקות ובנגישות. מידע נוסף זמין במאמרים Semantics in Jetpack Compose ו-SemanticsModifier
.
testTag
המשנה testTag
הוא קיצור של SemanticsPropertyReceiver.testTag
, שמאפשר למסגרות בדיקה למצוא את הרכיב בבדיקות.