元件
Azure 遠端轉譯使用 實體元件系統 模式。 雖然 實體 代表物件的位置和階層式組合,但元件會負責實作行為。
最常使用的元件類型為 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 文件
- C# ComponentBase
- C# 轉譯連線。CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- C++ 轉譯連線ion::CreateComponent()
- C++ Entity::FindComponentOfType()