구성 요소

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

가장 자주 사용되는 구성 요소 유형은 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 설명서

다음 단계