batrix/scripts/gameplay/enemies/projectile_spawner.gd
2025-08-14 14:26:31 +10:00

28 lines
680 B
GDScript

extends Node3D
@export var _velocity: Vector3 = Vector3.FORWARD
@export var _spawn_rate: float = 2
@export_group("References")
@export var _spawn_point: Node3D
@export var _projectile_scene: PackedScene
@export var _spawn_particles: GPUParticles3D
var _spawn_timer: float
func _ready() -> void:
_spawn_timer = _spawn_rate
_spawn_point.position.y = Projectile.HEIGHT
func _process(delta: float) -> void:
if _spawn_timer <= 0:
_spawn_timer = _spawn_rate
var projectile := _projectile_scene.instantiate() as Projectile
projectile.init(basis * _velocity, _spawn_point.global_position)
add_child(projectile)
_spawn_particles.emitting = true
_spawn_timer -= delta