Gravity Zones
Zones that alter a floater's gravity source.
How Gravity Zones Work
All GravityZones
must have a trigger collider attached to the script object.
When a Floater
enters a GravityZone
, the GravityZone
is added to the stack of influencing GravityZones
.
Only the most recent GravityZone
entered will be the zone exerting it's force on the Floater
.
If a Floater
leaves a GravityZone
, it will revert to the previous GravityZone
it was in.
Float Volume Gravity Settings
FloatVolumes
should have the "Water Gravity Zone" set to their respective gravity zone.
If you are using GravityZoneFlat
, set Dynamic Gravity Direction
to true on the FloatVolume
.
FloatVolumes
will auto detect if a sphere or capsule collider is being used as the FloatVolume
trigger and will automatically perform the correct water height calculations.
Some GravityZones
require additional settings to be turned on for FloatVolumes
, see details for each zone type below.
Included Gravity Zones
GravityZoneFlat
Applies gravity downward based on the zone's rotation.
Useful for water walls and ceilings.
For
FloatVolumes
using this Gravity Zone:Set
Dynamic Gravity Direction
to true.
GravityZoneSphere
The "Gravity Center" transform should be located in the center of the sphere.
Toggle on the "Is Concave" option to make the gravity push outwards from the center.
GravityZoneCapsule
Toggle on the "Is Concave" option to make the gravity push outwards from the center.
Warning: If you want to increase the size of the capsule, the collider of the capsule will be the actual size of the zone and not the visual mesh of the capsule. Capsule colliders scale very differently compared to all other colliders. If you want to adjust the length or radius of a capsule collider, you will have to create a custom mesh to visually match the trigger size of the zone.
GravityZoneRamp
Applies a cylinder's gravity to create a ramp like effect.
The "Gravity Center" transform must be located in the center of the cylinder AND must be rotated to have the Y-axis pointing in the direction of the cylinder.
Toggle on the "Is Concave" option to make the gravity push outwards from the center.
Creating Custom Gravity Zones
Create a new script and inherit from the
GravityZone
class.Implement the
GetGravityForce
andSetGravityIntensity
override functions.GetGravityForce
should do all your calculations you wish the gravity zone to performSetGravityIntensity
is for updating the gravity intensity, which can trigger recalculations of variables if desired.
Last updated