prog
This commit is contained in:
@@ -24,8 +24,9 @@ const COLLISION_MARGIN:float = 0
|
|||||||
@export_category("Auto-center")
|
@export_category("Auto-center")
|
||||||
@export var centeredDelay:float = 1.0
|
@export var centeredDelay:float = 1.0
|
||||||
@export var centeredFollowRate:float = 0.75
|
@export var centeredFollowRate:float = 0.75
|
||||||
@export var centeredMaxFollowRate:float = 1.0
|
@export var centeredMaxFollowRate:float = 1.5
|
||||||
@export var centeredPitch:float = 30.0
|
@export var centeredPitch:float = 30.0
|
||||||
|
@export var centeredMaxYawDiff:float = 120.0
|
||||||
|
|
||||||
@export_category("Collision")
|
@export_category("Collision")
|
||||||
@export_flags_3d_physics var collisionMask:int = 1
|
@export_flags_3d_physics var collisionMask:int = 1
|
||||||
@@ -105,12 +106,15 @@ func _process(delta:float) -> void:
|
|||||||
targetNode.global_transform.basis.z.x,
|
targetNode.global_transform.basis.z.x,
|
||||||
targetNode.global_transform.basis.z.z
|
targetNode.global_transform.basis.z.z
|
||||||
))
|
))
|
||||||
|
|
||||||
var centerYawDiff:float = fposmod(behindYaw - _yaw + 180.0, 360.0) - 180.0
|
var centerYawDiff:float = fposmod(behindYaw - _yaw + 180.0, 360.0) - 180.0
|
||||||
var totalAngle:float = abs(centerYawDiff) + abs(centeredPitch - _pitch)
|
if abs(centerYawDiff) <= centeredMaxYawDiff:
|
||||||
var dynamicRate:float = minf(centeredFollowRate * (1.0 + totalAngle / 90.0), centeredMaxFollowRate)
|
var totalAngle:float = abs(centerYawDiff) + abs(centeredPitch - _pitch)
|
||||||
var t:float = minf(dynamicRate * delta, 1.0)
|
var dynamicRate:float = minf(centeredFollowRate * (1.0 + totalAngle / 90.0), centeredMaxFollowRate)
|
||||||
_pitch = lerpf(_pitch, centeredPitch, t)
|
var tYaw:float = minf(dynamicRate * delta, 1.0)
|
||||||
_yaw += centerYawDiff * t
|
var tPitch:float = minf(dynamicRate * 3.0 * delta, 1.0)
|
||||||
|
_pitch = lerpf(_pitch, centeredPitch, tPitch)
|
||||||
|
_yaw += centerYawDiff * tYaw
|
||||||
|
|
||||||
_pitch = clamp(_pitch, pitchMin, pitchMax)
|
_pitch = clamp(_pitch, pitchMin, pitchMax)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user