代码
extends Camera export var lock_x :bool = false export var lock_y :bool = false export var lock_z :bool = false export(float,EXP,0.1,1.0,0.1) var smoothing : float = 0.5 var target:Spatial var offset:Vector3 func _ready(): add_to_group("camera") var players :Array = get_tree().get_nodes_in_group("player") if players != null && not players.empty(): target = players[0] offset = get_global_transform().origin - target.get_global_transform().origin else: print("player not found in scene") func _physics_process(delta): if target == null: print("target lost") return var cam:Vector3 = get_global_transform().origin var focus:Vector3 = target.get_global_transform().origin var tgt = focus + offset if lock_x: tgt.x = cam.x if lock_y: tgt.y = cam.y if lock_z: tgt.z = cam.z look_at_from_position(lerp(cam,tgt,smoothing),focus,Vector3.UP)x/y/z轴都不锁定的效果