Součásti
Azure Remote Rendering používá model systému komponent entity. Zatímco entity představují pozici a hierarchické složení objektů, komponenty jsou zodpovědné za implementaci chování.
Nejčastěji používané typy komponent jsou mesh components, které přidávají sítě do kanálu vykreslování. Podobně se lehké komponenty používají k přidání osvětlení a řeza rovině součásti se používají k řezání otevřených ok.
Všechny tyto komponenty používají transformaci (pozici, otočení, měřítko) entity, ke které jsou připojeny, jako referenční bod.
Práce s komponentami
Komponenty můžete snadno přidávat, odebírat a manipulovat s nimi programově:
// 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;
Komponenta je připojena k entitě při vytváření. Potom ji nelze přesunout do jiné entity. Komponenty se explicitně odstraní nebo Component.Destroy()
automaticky po zničení entity vlastníka komponenty.
Do entity může být současně přidána pouze jedna instance každého typu komponenty.
Specifické pro Unity
Integrace Unity obsahuje další funkce rozšíření pro interakci s komponentami. Podívejte se na herní objekty a komponenty Unity.
Dokumentace k rozhraní API
- C# ComponentBase
- Vykreslování jazyka C#Připojení ion CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- Vykreslování C++Připojení ion::CreateComponent()
- Entita C++::FindComponentOfType()