Components
Components attach to objects to give them functionality. Every object starts with just a transform (position, rotation, scale); everything else - rendering, animation, physics, and more - is added through components.
Transform Component
Defines an object’s position, rotation, and scale in the world. Every object has one by default, and it forms the basis of the parent-child hierarchy. Child transforms are relative to their parent’s.
Mesh Component
Attaches a static mesh to an object for rendering. Works with the deferred PBR pipeline, with material properties like albedo, roughness, and metallic.
Skeletal Mesh Component
Attaches a rigged, animated mesh to an object. Bones are skinned on the GPU, and are driven by an animation clip and the object’s bone hierarchy.
Point Light Component
Emits light from a single point in all directions, falling off with distance.
Script Component
Attaches Lua behaviour to an object via the scripting API. Gives objects custom logic - input, gameplay events, or interacting with other objects and their children.
Camera Component
Defines a viewpoint for rendering the scene, which can be switched to at runtime.
Physics Component
Gives the object physics functionality powered by Jolt.
Shape Components (Box, Sphere, Heightmap, etc)
Gives the object a collision shape that is used by the physics system to handle collisions.
Terrain Component
Creates a terrain mesh for the object that is generated GPU-side. Note that an object cannot have both a mesh and terrain component.
Enemy AI Component
Gives the object AI that moves based on a flowfield.