代码
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轴
都不锁定的效果
z轴
的效果