Godot Version
4.4
Question
im making a gun and idk why it only shoots once and no more
extends Node3D
@export var fire_rate := 14.0
@export var recoil := 0.05
@export var weapon_mesh: Node3D
@export var Weapon_damage := 15
@onready var cooldown: Timer = $cooldown
@onready var weapon_position: Vector3 = weapon_mesh.position
@onready var ray_cast_3d: RayCast3D = $RayCast3D
# Called when the node enters the scene tree for the first time.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if Input.is_action_pressed("fire"):
if cooldown.is_stopped():
shoot()
weapon_mesh.position = weapon_mesh.position.lerp(weapon_position, delta * 10)
func shoot() -> void:
cooldown.start(1.0 / fire_rate)
var collider = ray_cast_3d.get_collider()
print("fires",collider)
weapon_mesh.position.z =+ recoil
if collider is Enemy:
collider.Hp -= Weapon_damage