SceneCoreEntity là một thành phần kết hợp không gian con kết nối thư viện Jetpack SceneCore và Compose cho XR để bạn có thể sử dụng các thực thể được tạo bằng SceneCore trong bố cục Compose. Điều này cho phép bạn xây dựng các thực thể cấp thấp hơn và các thành phần tuỳ chỉnh, đồng thời cho phép Compose định kích thước, định vị, thay đổi thành phần mẹ, thêm thành phần con và áp dụng đối tượng sửa đổi cho các thực thể đó.
Sử dụng thực thể SceneCore để đặt các thực thể trong bố cục
Ví dụ sau đây cho thấy cách sử dụng thực thể SceneCore để đặt các thực thể vào bố cục:
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. } }
Các điểm chính về mã
- Khối nhà máy: Khối nhà máy là nơi bạn khởi chạy thực thể
SurfaceEntitycơ bản từ SceneCore. - Khối cập nhật: Sử dụng khối cập nhật để sửa đổi các thuộc tính của thực thể nhằm phản hồi các thay đổi trong trạng thái Compose.
- Điều chỉnh kích thước:
sizeAdaptertruyền kích thước của thực thể trở lại hệ thống bố cục Compose.
Thông tin khác
- Hãy xem bài viết Thêm mô hình 3D vào ứng dụng để hiểu rõ hơn cách tải nội dung 3D trong
SceneCoreEntity.