قابلیتهای فضایی میتواند با تعامل کاربران با برنامه یا سیستم شما تغییر کند، یا حتی میتواند توسط خود برنامه شما تغییر کند - به عنوان مثال، حرکت به فضای خانه یا فضای کامل. برای جلوگیری از مشکلات، برنامه شما باید قابلیتهای فضایی را بررسی کند تا مشخص کند کدام API در محیط فعلی پشتیبانی میشود.
قابلیتهای فضایی را با استفاده از Jetpack Compose برای XR بررسی کنید
Jetpack Compose برای XR یک Composition Local برای بررسی قابلیتهای فضایی ایجاد میکند. از این برای بررسی فعال بودن رابط کاربری فضایی، صدای مکانی، محیطها، عبور یا محتوای سه بعدی استفاده کنید.
می توانید از LocalSpatialCapabilities.current
برای بررسی اینکه آیا قابلیت های فضایی زیر در حال حاضر در دسترس هستند یا خیر استفاده کنید:
-
isSpatialUiEnabled
: نشان می دهد که آیا برنامه ممکن است عناصر فضایی UI ایجاد کند (به عنوان مثال،SpatialPanel
). -
isContent3dEnabled
: نشان می دهد که آیا برنامه ممکن است اشیاء سه بعدی ایجاد کند یا خیر. -
isAppEnvironmentEnabled
: نشان می دهد که آیا برنامه ممکن است محیط را تنظیم کند یا خیر. -
isPassthroughControlEnabled
: نشان می دهد که آیا برنامه می تواند وضعیت عبور را کنترل کند یا خیر. -
isSpatialAudioEnabled
: نشان می دهد که آیا برنامه ممکن است از صدای مکانی استفاده کند یا خیر.
مثال زیر نحوه بررسی فعال بودن رابط فضایی را نشان می دهد:
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) { Subspace { SpatialPanel( modifier = SubspaceModifier .width(1488.dp) .fillMaxHeight() ) { AppContent() } } } else { AppContent() }
قابلیت های فضایی را با استفاده از SceneCore بررسی کنید
هنگام استفاده از کتابخانه SceneCore، باید یک جلسه ایجاد کنید. پس از ایجاد جلسه، spatialCapabilities
را در جلسه فراخوانی کنید تا پرس و جو کنید که کدام قابلیت های فضایی در حال حاضر در دسترس هستند.
-
SPATIAL_CAPABILITY_3D_CONTENT
: این فعالیت می تواند محتوای سه بعدی ایجاد کند. -
SPATIAL_CAPABILITY_APP_ENVIRONMENT
: فعالیت می تواند محیط خود را تنظیم کند. -
SPATIAL_CAPABILITY_EMBED_ACTIVITY
: این فعالیت می تواند فعالیت دیگری را به صورت فضایی جاسازی کند. -
SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL
: این فعالیت می تواند عبور را فعال یا غیرفعال کند. -
SPATIAL_CAPABILITY_SPATIAL_AUDIO
: این فعالیت میتواند از صدای مکانی استفاده کند. -
SPATIAL_CAPABILITY_UI
: فعالیت می تواند خود را فضایی کند، به عنوان مثال اضافه کردن یک پانل فضایی.
همچنین میتوانید مشترک شدن در یک پاسخ تماس بگیرید، addSpatialCapabilitiesChangedListener
که در صورت تغییر قابلیتهای فضایی به شما اطلاع میدهد.
// Example 1: check if enabling passthrough mode is allowed if (xrSession.scene.spatialCapabilities.hasCapability( SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL ) ) { xrSession.scene.spatialEnvironment.setPassthroughOpacityPreference(0f) } // Example 2: multiple capability flags can be checked simultaneously: if (xrSession.scene.spatialCapabilities.hasCapability( SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT ) ) { // ... }
همچنین ببینید
- یک جلسه ایجاد کنید
- انتقال بین HSM و FSM
- محیط های فضایی را به برنامه خود اضافه کنید
- مدل های سه بعدی را به برنامه خود اضافه کنید