28 lines
680 B
GDScript
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
|