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 onderdelen gebruikt om verlichtings- en snijvlakonderdelen toe te voegen om open meshes te snijden.

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

Werken met onderdelen

U kunt eenvoudig onderdelen 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 is gekoppeld aan een entiteit tijdens het maken. 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 aan een entiteit worden toegevoegd.

Unity-specifiek

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

API-documentatie

Volgende stappen