I think you can do both. But I would prefer camera following a point.
You can create a camera script and it can have a variable called ‘target’. It would always follow the target, if there’s any, in the process function. You can change target to enemy or player.
extends Camera3D
var target
func _process(delta):
if target:
position = target.position
There may be different approaches also..