دستگاههای XR واجدشرایط
این راهنمایی به شما کمک میکند برای این نوع دستگاههای واقعیت گسترده تجربه بسازید.
SceneCoreEntity یک ترکیبشدنی زیرفضا است که بین کتابخانههای
Jetpack SceneCore و Compose for XR پل میزند تا بتوانید از
موجودیتهای ساختهشده با SceneCore در طرحبندیهای Compose استفاده کنید. این به شما امکان میدهد موجودیتهای سطح پایینتر و مؤلفههای سفارشی بسازید و درعینحال به Compose اجازه میدهد اندازه، موقعیت، والد جدید، افزودن فرزندان، و اعمال اصلاحکنندهها را برای آن موجودیتها انجام دهد.
از نهاد SceneCore برای قرار دادن نهادها در چیدمانتان استفاده کنید
مثال زیر نحوه استفاده از نهاد SceneCore را برای قرار دادن نهادها در چیدمان نشان میدهد:
val virtualPixelDensity = session.scene.virtualPixelDensity Subspace { SceneCoreEntity( modifier = SubspaceModifier.offset(x = 50.dp), factory = { SurfaceEntity.create( session = session, pose = Pose.Identity, stereoMode = SurfaceEntity.StereoMode.MONO ) }, update = { entity -> // Compose state changes may be applied to the SceneCore entity here. entity.stereoMode = SurfaceEntity.StereoMode.SIDE_BY_SIDE }, sizeAdapter = object : SceneCoreEntitySizeAdapter<SurfaceEntity> { override fun onLayoutSizeChanged( entity: SurfaceEntity, size: IntVolumeSize ) { val extents = FloatSize2d( size.width.toFloat(), size.height.toFloat() ) entity.shape = SurfaceEntity.Shape.Quad(extents) } }, ) { // Content here will be children of the SceneCoreEntity // in the scene graph. } }
نکات کلیدی درباره کد
- بلوک کارخانه: بلوک کارخانه جایی است که موجودیت
SurfaceEntityزیربنایی را از SceneCore مقداردهی اولیه میکنید. - بلوک بهروزرسانی: از بلوک بهروزرسانی برای اصلاح ویژگیهای موجودیت در پاسخ به تغییرات در وضعیت Compose استفاده کنید.
- انطباق اندازه:
sizeAdapterابعاد موجودیت را به سیستم چیدمان Compose برمیگرداند.
اطلاعات بیشتر
- برای درک بهتر نحوه بار کردن محتوای سهبعدی در
SceneCoreEntity، به افزودن مدلهای سهبعدی به برنامه مراجعه کنید.