نهادهای SceneCore

دستگاه‌های 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 برمی‌گرداند.

اطلاعات بیشتر