Onderdelen

Azure Remote Rendering maakt gebruik van het patroon Entity Component System . Hoewel entiteiten de positie en de hiërarchische samenstelling van objecten vertegenwoordigen, zijn onderdelen verantwoordelijk voor het implementeren van gedrag.

De meest gebruikte typen onderdelen zijn mesh components, die meshes toevoegen aan de renderingpijplijn. Op dezelfde manier worden lichte componenten gebruikt om verlichtings- en snijvlakonderdelen toe te voegen om open meshes te knippen.

Al deze onderdelen gebruiken de transformatie (positie, rotatie, schaal) van de entiteit waaraan ze zijn gekoppeld, als referentiepunt.

Werken met onderdelen

U kunt onderdelen eenvoudig programmatisch toevoegen, verwijderen en bewerken:

// 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;

Een onderdeel wordt tijdens het maken gekoppeld aan een entiteit. Het kan achteraf niet naar een andere entiteit worden verplaatst. Onderdelen worden expliciet verwijderd met Component.Destroy() of automatisch wanneer de entiteit eigenaar van het onderdeel wordt vernietigd.

Er kan slechts één exemplaar van elk onderdeeltype tegelijk worden toegevoegd aan een entiteit.

Unity-specifiek

De Unity-integratie heeft extra uitbreidingsfuncties voor interactie met onderdelen. Bekijk Unity-gameobjecten en -onderdelen.

API-documentatie

Volgende stappen