Files
CybelovZOVod/addons/Weapons/Scripts/Camera/CameraRecoilHolderScript.gd
T

26 lines
858 B
GDScript
Raw Normal View History

2026-07-21 00:27:17 +07:00
extends Node3D
#Camera recoil variables
var currentRotation : Vector3
var targetRotation : Vector3
var baseRotationSpeed : float
var targetRotationSpeed : float
func _process(delta):
handleRecoil(delta)
func handleRecoil(delta):
#first phase, the camera will aim according the recoil values
#second phase, the camera back down to her initial rotation value
targetRotation = lerp(targetRotation, Vector3.ZERO, baseRotationSpeed * delta)
currentRotation = lerp(currentRotation, targetRotation, targetRotationSpeed * delta)
rotation = currentRotation
func setRecoilValues(baseRotSpeed : float, targRotSpeed : int):
baseRotationSpeed = baseRotSpeed
targetRotationSpeed = targRotSpeed
func addRecoil(recoilValue):
targetRotation += Vector3(recoilValue.x, randf_range(-recoilValue.y, recoilValue.y), randf_range(-recoilValue.z, recoilValue.z))