다음을 통해 공유


구성 요소

Azure Remote Rendering은 Entity Component System 패턴을 사용합니다. 엔터티가 개체의 위치 및 계층적 컴퍼지션을 나타낸다면 구성 요소는 동작 구현을 담당합니다.

가장 자주 사용되는 구성 요소 형식은 메시를 렌더링 파이프라인에 추가하는 mesh components입니다. 이와 유사하게 광원 구성 요소는 광원을 추가하는 데, 절단면 구성 요소는 열린 메시를 잘라내는 데 사용합니다.

이러한 모든 구성 요소는 참조 지점으로 연결된 엔터티의 변환(위치, 회전, 배율)을 사용합니다.

구성 요소 사용하기

프로그래밍 방식으로 구성 요소를 쉽게 추가, 제거 및 조작할 수 있습니다.

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

구성 요소는 생성 시 엔터티에 연결됩니다. 나중에 다른 엔터티로 이동할 수 없습니다. 구성 요소는 구성 요소 소유자 엔터티가 제거될 때 Component.Destroy()를 사용하여 명시적으로 삭제되거나 자동으로 삭제됩니다.

한 번에 각 구성 요소 형식에서 단 하나의 인스턴스만 엔터티에 추가할 수 있습니다.

Unity 관련

Unity 통합에는 구성 요소와의 상호 작용에 필요한 추가 확장 기능이 있습니다. Unity 게임 개체 및 구성 요소를 참조하세요.

API 설명서

다음 단계