Added static navigation obstacle component.
This commit is contained in:
parent
476b6b97b5
commit
cc322c8f40
|
@ -0,0 +1,27 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var aabb: AABB = AABB(Vector3(-1,0,-1),Vector3(2,2,2))
|
||||||
|
@export var weight: float = 10.0
|
||||||
|
@export var make_solid: bool = true
|
||||||
|
|
||||||
|
var enable_timer: float = 1.0
|
||||||
|
var enabled: bool = false
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if enable_timer > 0:
|
||||||
|
enable_timer -= delta
|
||||||
|
if !enabled and enable_timer <= 0:
|
||||||
|
enabled = true
|
||||||
|
update()
|
||||||
|
|
||||||
|
func update() -> void:
|
||||||
|
var global_aabb: AABB = global_transform * aabb
|
||||||
|
#DebugDraw3D.draw_aabb(global_aabb, Color.DARK_CYAN, 5)
|
||||||
|
for map_rid in NavigationServer3D.get_maps():
|
||||||
|
for region_rid in NavigationServer3D.map_get_regions(map_rid):
|
||||||
|
var region_aabb: AABB = NavigationServer3D.region_get_bounds(region_rid).grow(0.1)
|
||||||
|
#DebugDraw3D.draw_aabb(region_aabb, Color.YELLOW, 5)
|
||||||
|
if global_aabb.intersects(region_aabb):
|
||||||
|
NavigationServer3D.region_set_travel_cost(region_rid, weight)
|
||||||
|
#NavigationServer3D.region_set_enabled(region_rid, false)
|
||||||
|
DebugDraw3D.draw_aabb(region_aabb, Color.RED, 5)
|
|
@ -0,0 +1 @@
|
||||||
|
uid://bcp3fwf3nds3k
|
Loading…
Reference in New Issue