IN THIS ARTICLE
Shape components generate helper geometries that can be used to define shapes for area lights and shape gradients, as well as volumes and areas for AI, audio, fog, spawners, vegetation, and PhysX.
|Shape Component||Shape type||Used for|
|Axis Aligned Box Shape||Axis-aligned box geometry||Terrain, Volume, Triggers|
|Box Shape||Box geometry||Volumes, Triggers|
|Capsule Shape||Capsule (cylinder with half-sphere at ends) geometry||Volumes, Triggers|
|Compound Shape||Aggregate geometry defined by other Shape components||Volumes, Triggers|
|Cylinder Shape||Cylinder geometry||Volumes, Triggers|
|Disk Shape||Disk geometry||Areas, Triggers|
|Polygon Prism Shape||N-sided prism geometry||Volumes, Triggers|
|Quad Shape||Quad-plane geometry||Areas, Triggers|
|Sphere Shape||Sphere geometry||Volumes, Triggers|
|Spline||Lines and curves||Paths|
|Tube Shape||Tube geometry||Volumes, Triggers|
Note:The White Box component does not share the same functionality as other Shape components. The sections that follow do not apply to the White Box component. For more information, refer to the White Box documentation.
An entity can have only one Shape component.
Important:Always use the Shape’s component properties to scale the shape, such as the Dimensions, Height, and Radius properties. Do not use the entity’s Transform component to scale a Shape component.
An entity containing a Shape component should have a uniform and normalized scale; that is, the Scale property of the Transform component should be X:
1.0. If a shape component is scaled non-uniformly, rendering and intersection tests use the largest vector of the Transform component’s Scale property, yielding undesirable results.
By default, shapes are always visible in the Open 3D Engine (O3DE) Editor. You can hide shapes on non-selected entities by disabling the Visible property in the shape component.
To display a Shape component for debugging purposes while in game mode, enable the Game View property.
Each Shape component provides a generic
ShapeService that exposes functionality common to all shapes. Each shape also provides a more specific service, such as
All Shape components provide access to two separate request buses. The first bus is the
ShapeComponentRequestsBus that returns general information about the Shape component. The second bus is the
ShapeNameComponentRequestsBus that returns property configurations for the specific shape. Information on the
ShapeNameComponentRequestsBus can be found on the reference pages for each Shape component.
All shapes share a single notification bus named
You can use the following functions with the event bus interface to communicate with other components in your game.
|Returns the minimum distance between a specified point and the shape.||Point: Vector3 point to calculate distance from.||Float - Distance from point to shape.||Yes|
|Returns the minimum squared distance between a specified point and the shape.||Point: Vector3 point to calculate squared distance from.||Float: Squared distance from point to shape.||Yes|
|Returns an AABB (Axis Aligned Bounding Box) that encompasses the entire shape.||None||Yes|
|Returns the specified Shape Type for the component.||None||Yes|
|Checks if a specified point is inside the shape.||Point: Vector3 point to check.||Boolean: Returns ||Yes|
|Notifies listeners that the shape has been updated.||Void||Yes|