Trigger Area
Physics detection volume that triggers onEnter and onExit overlap events without rigid collisions.
Type: AreaNode · Category: Physics & Collision · Also found as: area
Properties
Section titled “Properties”| Property | Type | Default | Description |
|---|---|---|---|
overlapCount |
integer | 0 |
Bodies overlapping now. Range 0 to 100. Runtime state: read-only, not saved. |
hasOverlaps |
boolean | false |
Anything overlapping now. Runtime state: read-only, not saved. |
debugColor |
color | #a855f7ff |
Outline colour when nothing overlaps. |
activeColor |
color | #ec4899ff |
Outline colour while something overlaps. |
Plus the common properties every node has.
Lua methods
Section titled “Lua methods”Call them on the node (self.node in its script, or self.node:get_node("path")). Every node also has the Node methods.
AreaNode:connect(event, handler)
Section titled “AreaNode:connect(event, handler)”Connects a handler to one of this node’s events: body_entered (A body entered the area), body_exited (A body left the area); the tree events; custom ones.
self.node:connect("body_entered", function(value, source) Log.info("body_entered") end)eventAreaNodeEvent|stringhandlerfun(value:any, source: AreaNode)
Returns integer id Connection id for disconnect
AreaNode:get_property(path)
Section titled “AreaNode:get_property(path)”Reads an Inspector property by its path (vectors and colours as tables); “script.
local value = self.node:get_property("debugColor")pathAreaNodeProperty|string
Returns any
AreaNode:set_property(path, value, y)
Section titled “AreaNode:set_property(path, value, y)”Sets an Inspector property by its path: vectors as {x, y} or x, y; colours as {r, g, b[, a]} 0..1 or “#rrggbb[aa]”; enums by name; “script.
self.node:set_property("debugColor", "#ff8800")pathAreaNodeProperty|stringvalueanyy?number
AreaNode:area_is_overlapping()
Section titled “AreaNode:area_is_overlapping()”Checks whether any physics nodes are currently inside this sensor area.
if self.node:get_node("Hitbox"):area_is_overlapping() then self:take_damage(1) endReturns boolean
AreaNode:area_get_overlap_count()
Section titled “AreaNode:area_get_overlap_count()”Returns the number of bodies currently overlapping this sensor area.
local count = self.node:get_node("Zone"):area_get_overlap_count()Returns number
AreaNode:area_get_overlapping_nodes()
Section titled “AreaNode:area_get_overlapping_nodes()”Returns an array of all nodes currently overlapping this sensor area.
for _, n in ipairs(self.node:area_get_overlapping_nodes()) do Log.info(n:get_name()) endReturns Node[]
In a scene file
Section titled “In a scene file”{ "type": "AreaNode", "name": "TriggerArea", "position": [ 0, 0 ], "properties": { "debugColor": "#a855f7ff", "activeColor": "#ec4899ff" }}