コンポーネント
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()
を使用して明示的に削除されるか、またはコンポーネントの所有者エンティティが破棄されたときに自動的に削除されます。
各コンポーネントの種類のインスタンスは、一度に 1 つのみエンティティに追加できます。
Unity 固有
Unity 統合には、コンポーネントと対話するための拡張機能が追加されています。 「Unity のゲーム オブジェクトとコンポーネント」を参照してください。
API ドキュメント
- C# ComponentBase
- C# RenderingConnection.CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- C++ RenderingConnection::CreateComponent()
- C++ Entity::FindComponentOfType()