godot 4 全局自定义信号,发射信号并携带参数

  1. 全局信号
extends Node

# 定义确实移动参数
signal character_move(dest_position:Vector2)

  1. 角色处理
extends CharacterBody2D


@export var speed:int = 100


func _ready():
	GlobalSignal.connect("character_move", move)


func _physics_process(_delta):
	move_and_slide()


func move(dest_position:Vector2):
	if position.distance_to(dest_position) > 3 :
		var direction = position.direction_to(dest_position)
		velocity = direction * speed
	else:
		velocity = Vector2()

  1. 发射自定义信号,并携带参数
extends Node2D

@onready var character1 = $character1
@onready var character2 = $character2

func _ready():
	pass 


func _process(_delta):
	pass


func _on_button_1_pressed():
	GlobalSignal.character_move.emit(character2.position)


func _on_button_2_pressed():
	GlobalSignal.character_move.emit(character1.position)

  1. 工程目录
    在这里插入图片描述
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐