Alt alan, uygulamanızda 3D modeller yerleştirebileceğiniz, 3D düzenler oluşturabileceğiniz ve aksi takdirde 2D olan içeriklere derinlik ekleyebileceğiniz 3D alanın bir bölümüdür. Alt alan yalnızca uzamsallaştırma etkinleştirildiğinde oluşturulur. Ana Alan'da veya XR olmayan cihazlarda, bu alt alan içindeki tüm kodlar yoksayılır.
3D model yerleştirmek için Volume
ve SpatialPanel
gibi @SubspaceComposable
'leri kullanabilirsiniz. Orbiter
veya SpatialDialog
gibi bazı XR bileşenleri, 2D kullanıcı arayüzü hiyerarşinizde herhangi bir yerde kullanılabilen standart 2D birleştirilebilir öğelerdir. Ancak SubspaceComposable
öğeleri, uygulamanızın alt uzayında çağrılmalıdır. Bunun için Subspace
bileşenini kullanırsınız.
Diğer tüm bileşenlerde olduğu gibi Subspace
'i doğrudan 2D kullanıcı arayüzü hiyerarşinizde çağırabilirsiniz. Ancak Subspace
işlevini hiyerarşinin neresinde çağırdığınızın sonuçlarının farkında olmanız önemlidir.
Alt alan hiyerarşileri hakkında
Üst düzey alt alan, uygulamanız tarafından çağrılan en dış alt alandır. Bu alt alanın sınırları sonsuzdur ve genellikle uygulamanızın mekansal düzenini ve SpatialPanel
'i buraya yerleştirirsiniz.
Ancak, üst düzey alt uzayda bulunan bir panelde 2D kullanıcı arayüzü hiyerarşisinin içine başka bir alt alan yerleştirirseniz bu iç içe yerleştirilmiş alt alan farklı davranır.
İç içe yerleştirilmiş alt alanların üst düzey Subspace
ile iki temel farkı vardır:
- Bu öğeler, çağrıldıkları 2D düzene katılır. Bu, alt uzayın yüksekliğinin ve genişliğinin 2D ana düzeninin yüksekliği ve genişliğiyle sınırlı olacağı anlamına gelir.
- Bu işlevler, çağrıldıkları öğenin alt öğeleri gibi davranır. Yani,
SpatialPanel
içinde iç içe yerleştirilmiş birSubspace
bileşenini çağırırsanız bu alt alan, çağrıldığıSpatialPanel
bileşeninin alt öğesi olur.
İç içe yerleştirilmiş alt uzayın bu davranışları aşağıdaki gibi özellikleri etkinleştirir:
- Alt öğeyi üst öğeyle taşıma
- Ofset
SubspaceModifier
kullanarak çocuğun konumunu kaydırma - 2D kullanıcı arayüzünüzün üzerinde duran ve 2D düzendeki uygun alanın yüksekliği ve genişliğiyle eşleşen bir 3D nesne sunma
Uygulamanıza alt alan ekleme
Aşağıdaki kod örneğinde, uygulamanıza üst düzey ve iç içe yerleştirilmiş alt alanların nasıl ekleneceği gösterilmektedir.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
// This is a top-level subspace
Subspace {
SpatialPanel {
MyComposable()
}
}
}
}
@Composable
private fun MyComposable() {
Row {
PrimaryPane()
SecondaryPane()
}
}
@Composable
private fun PrimaryPane() {
...
// This is a nested subspace, because PrimaryPane is in a SpatialPanel
// and that SpatialPanel is in a top-level Subspace
Subspace {
ObjectInAVolume(show3DObject)
}
...
}