SceneCoreEntity एक सबस्पेस कंपोज़ेबल है, जो Jetpack SceneCore और Compose for XR लाइब्रेरी को जोड़ता है. इससे Compose लेआउट में, SceneCore की मदद से बनाई गई इकाइयों का इस्तेमाल किया जा सकता है. इससे आपको लोअर-लेवल की इकाइयां और कस्टम कॉम्पोनेंट बनाने में मदद मिलती है. साथ ही, 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. } }
कोड के बारे में अहम बातें
- फ़ैक्ट्री ब्लॉक: फ़ैक्ट्री ब्लॉक में, SceneCore से
SurfaceEntityइकाई को शुरू किया जाता है. - अपडेट ब्लॉक: Compose की स्थिति में हुए बदलावों के जवाब में, इकाई की प्रॉपर्टी में बदलाव करने के लिए, अपडेट ब्लॉक का इस्तेमाल करें.
- साइज़ अडैप्टेशन:
sizeAdapter, Compose लेआउट सिस्टम को इकाई के डाइमेंशन की जानकारी वापस भेजता है.
अतिरिक्त जानकारी
SceneCoreEntityमें 3D कॉन्टेंट लोड करने का तरीका बेहतर तरीके से समझने के लिए, अपने ऐप्लिकेशन में 3D मॉडल जोड़ना लेख पढ़ें.