解决godot4的信号重复链接报错问题

func update_select_obj(gameobj):
    current_select_obj = gameobj
    if not $TransformPanel/Vbox/RotationXHSlider.is_connected("value_changed",signal_update_current_gts_rotationx):
        $TransformPanel/Vbox/RotationXHSlider.value_changed.connect(signal_update_current_gts_rotationx)
    if not $TransformPanel/Vbox/RotationYHSlider.is_connected("value_changed",signal_update_current_gts_rotationy):
        $TransformPanel/Vbox/RotationYHSlider.value_changed.connect(signal_update_current_gts_rotationy)
    if not $TransformPanel/Vbox/RotationZHSlider.is_connected("value_changed",signal_update_current_gts_rotationz):
        $TransformPanel/Vbox/RotationZHSlider.value_changed.connect(signal_update_current_gts_rotationz)
    if not $TransformPanel/Vbox/ScaleHSlider.is_connected("value_changed",signal_update_current_gts_scale):
        $TransformPanel/Vbox/ScaleHSlider.value_changed.connect(signal_update_current_gts_scale)
func signal_update_current_gts_rotationx(value):
    current_select_obj.rotation_degrees.x = value
func signal_update_current_gts_rotationy(value):
    current_select_obj.rotation_degrees.y = value
func signal_update_current_gts_rotationz(value):
    current_select_obj.rotation_degrees.z = value
func signal_update_current_gts_scale(value):
    current_select_obj.scale = Vector3.ONE * value
    pass

需要先用Object.is_connected()判断

posted on 2025-09-15 10:46  小沙盒工作室  阅读(6)  评论(0)    收藏  举报