godot-plateformer/_player/extra/camera_priority_locker.gd

31 lines
606 B
GDScript3
Raw Normal View History

2026-01-02 23:56:22 +08:00
'''
Priority锁定为1
'''
extends Node
@export var target_camera: PhantomCamera2D
var _p
func _ready() -> void:
_p = target_camera
if not _p:
_p = get_parent() as PhantomCamera2D
if not _p:
printerr("[CameraLocker]: No vaild Camera Founded")
var pcm = Engine.get_singleton("PhantomCameraManager")
pcm.pcam_priority_changed.connect(_enforce)
pcm.pcam_visibility_changed.connect(_enforce)
# 启动时先保证一次
_enforce()
func _enforce(_pcam = null):
if not is_instance_valid(_p):
return
if _p.get_priority() != 1:
_p.set_priority(1)