Összetevők
Az Azure Remote Rendering az Entity Component System mintát használja. Bár az entitások az objektumok pozícióját és hierarchikus összetételét képviselik, az összetevők felelősek a viselkedés megvalósításáért.
Az összetevők leggyakrabban használt típusai azok mesh components, amelyek hálókat adnak hozzá a renderelési folyamathoz. Hasonlóképpen, a világos összetevőket világítás hozzáadására használják, a vágott sík összetevőit pedig a nyitott hálók vágására használják.
Ezek az összetevők referenciapontként a csatolt entitás átalakítását (pozícióját, forgatását, skálázását) használják.
Összetevők használata
Egyszerűen adhat hozzá, távolíthat el és kezelhet összetevőket programozott módon:
// 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;
Egy összetevő egy entitáshoz van csatolva a létrehozáskor. Később nem helyezhető át egy másik entitásba. Az összetevők explicit módon vagy automatikusan törlődnek Component.Destroy()
az összetevő tulajdonosi entitásának megsemmisítésekor.
Egyszerre csak egy összetevőtípus-példány adható hozzá egy entitáshoz.
Unity-specifikus
A Unity-integráció további bővítményfüggvényekkel rendelkezik az összetevőkkel való interakcióhoz. Lásd a Unity játék objektumait és összetevőit.
API-dokumentáció
- C# ComponentBase
- C# renderelés Csatlakozás ion. CreateComponent()
- C# Entity.FindComponentOfType()
- C++ ComponentBase
- C++ renderelés Csatlakozás ion::CreateComponent()
- C++ entitás::FindComponentOfType()