Elementy
Usługa Azure Remote Rendering używa wzorca systemu składników jednostki. Chociaż jednostki reprezentują położenie i hierarchiczną kompozycję obiektów, składniki są odpowiedzialne za implementowanie zachowania.
Najczęściej używane typy składników to mesh components, które dodają siatki do potoku renderowania. Podobnie, lekkie składniki są używane do dodawania elementów oświetlenia i płaszczyzny cięcia są używane do wycinania otwartych siatk.
Wszystkie te składniki używają przekształcenia (położenia, rotacji, skali) jednostki, do której są dołączone, jako punktu odniesienia.
Praca ze składnikami
Składniki można łatwo dodawać, usuwać i manipulować nimi programowo:
// 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;
Składnik jest dołączany do jednostki w czasie tworzenia. Nie można go później przenieść do innej jednostki. Składniki są jawnie usuwane z Component.Destroy()
lub automatycznie, gdy jednostka właściciela składnika zostanie zniszczona.
Do jednostki można jednocześnie dodać tylko jedno wystąpienie każdego typu składnika.
Specyficzny dla aparatu Unity
Integracja aparatu Unity ma dodatkowe funkcje rozszerzenia do interakcji ze składnikami. Zobacz Obiekty i składniki gry aparatu Unity.
Dokumentacja interfejsu API
- C# ComponentBase
- Renderowanie w języku C#Połączenie ion. CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- Renderowanie języka C++Połączenie ion::CreateComponent()
- C++ Entity::FindComponentOfType()