Komponen
Azure Remote Rendering menggunakan pola Sistem Komponen Entitas. Sementara entitas mewakili posisi dan komposisi hierarki objek, komponen bertanggung jawab untuk menerapkan perilaku.
Jenis komponen yang paling sering digunakan adalah mesh components, yang menambahkan piring ke dalam pipa penyajian. Demikian pula komponen ringan digunakan untuk menambahkan komponen pencahayaan dan memotong komponen bidang digunakan untuk memotong bulu terbuka.
Semua komponen ini menggunakan transformasi (posisi, rotasi, skala) entitas tempat mereka dilampirkan, sebagai titik referensinya.
Bekerja dengan komponen
Anda dapat dengan mudah menambahkan, menghapus, dan memanipulasi komponen secara terprogram:
// create a point light component
RenderingSession session = GetCurrentlyConnectedSession();
PointLightComponent lightComponent = session.Connection.CreateComponent(ObjectType.PointLightComponent, ownerEntity) as PointLightComponent;
lightComponent.Color = new Color4Ub(255, 150, 20, 255);
lightComponent.Intensity = 11;
// ...
// destroy the component
lightComponent.Destroy();
lightComponent = null;
// create a point light component
ApiHandle<RenderingSession> session = GetCurrentlyConnectedSession();
ApiHandle<PointLightComponent> lightComponent = session->Connection()->CreateComponent(ObjectType::PointLightComponent, ownerEntity)->as<PointLightComponent>();
// ...
// destroy the component
lightComponent->Destroy();
lightComponent = nullptr;
Komponen dilampirkan ke entitas pada waktu pembuatan. Ini tidak dapat dipindahkan ke entitas lain setelahnya. Komponen secara eksplisit dihapus dengan Component.Destroy()
atau secara otomatis ketika entitas pemilik komponen dihancurkan.
Hanya satu instans dari setiap jenis komponen yang dapat ditambahkan ke entitas pada satu waktu.
Unity spesifik
Integrasi Unity memiliki fungsi ekstensi tambahan untuk berinteraksi dengan komponen. Lihat objek dan komponen permainan Unity.
Dokumentasi API
- C# ComponentBase
- C# RenderingConnection.CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- C++ RenderingConnection.CreateComponent()
- C++ Entity::FindComponentOfType()