Partilhar via


Componentes

A Renderização Remota do Azure usa o padrão Sistema de Componentes de Entidade. Enquanto as entidades representam a posição e a composição hierárquica dos objetos, os componentes são responsáveis pela implementação do comportamento.

Os tipos de componentes usados com mais freqüência são mesh components, que adicionam malhas ao pipeline de renderização. Da mesma forma, componentes de luz são usados para adicionar iluminação e componentes de plano de corte são usados para cortar malhas abertas.

Todos estes componentes utilizam como ponto de referência a transformação (posição, rotação, escala) da entidade a que estão ligados.

Trabalhar com componentes

Você pode facilmente adicionar, remover e manipular componentes programaticamente:

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

Um componente é anexado a uma entidade no momento da criação. Posteriormente, não pode ser transferido para outra entidade. Os componentes são explicitamente excluídos com Component.Destroy() ou automaticamente quando a entidade proprietária do componente é destruída.

Apenas uma instância de cada tipo de componente pode ser adicionada a uma entidade de cada vez.

Unidade específica

A integração Unity tem funções de extensão adicionais para interagir com componentes. Consulte Objetos e componentes do jogo Unity.

Documentação da API

Próximos passos