Componenti
Il rendering remoto di Azure usa il modello di Sistema componente entità. Mentre le entità rappresentano la posizione e la composizione gerarchica degli oggetti, i componenti sono responsabili dell'implementazione del comportamento.
I tipi di componenti usati più di frequente sono , che aggiungono mesh componentsmesh alla pipeline di rendering. Analogamente, vengono usati componenti luminosi per aggiungere un'illuminazione e componenti del piano di taglio, per tagliare le mesh aperte.
Tutti questi componenti usano come punto di riferimento la trasformazione (posizione, rotazione, scala) dell'entità a cui sono collegati.
Uso dei componenti
È possibile aggiungere, rimuovere e modificare facilmente i componenti a livello programmatico:
// 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;
Un componente è associato a un'entità al momento della creazione e non può essere spostato successivamente in un'altra entità. I componenti vengono eliminati in modo esplicito con Component.Destroy()
o automaticamente, quando l'entità proprietaria del componente viene distrutta.
È possibile aggiungere a un'entità una sola istanza di ogni tipo di componente alla volta.
Indicazioni specifiche per Unity
L'integrazione di Unity dispone di funzioni di estensione aggiuntive per l'interazione con i componenti. Vedere Oggetti e componenti di gioco Unity.
Documentazione sull'API
- C# ComponentBase
- Rendering C#Connessione ion. CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- Rendering C++Connessione ion::CreateComponent()
- Entità C++::FindComponentOfType()