Kullanıcılar uygulamanızla veya sistemle etkileşimde bulundukça uzamsal özellikler değişebilir. Hatta uygulamanız tarafından bile değiştirilebilir (ör. ana alana veya tam alana geçme). Sorun yaşanmaması için uygulamanızın, mevcut ortamda hangi API'lerin desteklendiğini belirlemek üzere mekansal özellikleri kontrol etmesi gerekir.
XR için Jetpack Compose'u kullanarak uzamsal özellikleri kontrol etme
XR için Jetpack Compose, mekansal özellikleri kontrol etmek üzere yerel bir kompozisyon oluşturur. Uzamsal kullanıcı arayüzü, uzamsal ses, ortamlar, geçiş veya 3D içeriğin etkin olup olmadığını kontrol etmek için bu seçeneği kullanın.
Aşağıdaki mekansal özelliklerin şu anda kullanılıp kullanılamadığını kontrol etmek için LocalSpatialCapabilities.current
simgesini kullanabilirsiniz:
isSpatialUiEnabled
: Uygulamanın, uzamsal kullanıcı arayüzü öğeleri (ör.SpatialPanel
) oluşturup oluşturamayacağını belirtir.isContent3dEnabled
: Uygulamanın 3D nesne oluşturup oluşturamayacağını belirtir.isAppEnvironmentEnabled
: Uygulamanın ortamı ayarlayabileceğini belirtir.isPassthroughControlEnabled
: Uygulamanın geçiş durumunu kontrol edip edemeyeceğini belirtir.isSpatialAudioEnabled
: Uygulamanın uzamsal ses kullanıp kullanamayacağını belirtir.
Aşağıdaki örnekte, mekansal kullanıcı arayüzünün etkin olup olmadığının nasıl kontrol edileceği gösterilmektedir:
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) { Subspace { SpatialPanel( modifier = SubspaceModifier .width(1488.dp) .fillMaxHeight() ) { AppContent() } } } else { AppContent() }
SceneCore'u kullanarak mekansal özellikleri kontrol etme
SceneCore kitaplığını kullanırken bir oturum oluşturmanız gerekir. Oturum oluşturulduktan sonra, şu anda hangi mekansal özelliklerin kullanılabildiğini sorgulamak için oturumda spatialCapabilities
işlevini çağırın.
SPATIAL_CAPABILITY_3D_CONTENT
: Etkinlik 3D içerikler oluşturabilir.SPATIAL_CAPABILITY_APP_ENVIRONMENT
: Etkinlik kendi ortamını ayarlayabilir.SPATIAL_CAPABILITY_EMBED_ACTIVITY
: Etkinlik, başka bir etkinliği mekânsal olarak yerleştirebilir.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL
: Etkinlik, aktarmayı etkinleştirebilir veya devre dışı bırakabilir.SPATIAL_CAPABILITY_SPATIAL_AUDIO
: Etkinlik, uzamsal ses kullanabilir.SPATIAL_CAPABILITY_UI
: Etkinlik kendini üç boyutlu hale getirebilir (ör. üç boyutlu panel ekleme).
Ayrıca, addSpatialCapabilitiesChangedListener
uzamsal özellikler değiştiğinde sizi bilgilendiren bir geri aramaya abone olmayı da seçebilirsiniz.
// 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 ) ) { // ... }
Ayrıca bkz.
- Bir oturum oluşturun
- HSM ile FSM arasında geçiş
- Uygulamanıza mekansal ortamlar ekleme
- Uygulamanıza 3D model ekleme