你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
组件
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# RenderingConnection.CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- C++ RenderingConnection::CreateComponent()
- C++ Entity::FindComponentOfType()