尸酒岐 发表于 2025-7-26 23:24:13

Godot中用C#脚本自定义信号

Godot中用C#脚本自定义信号


[*]自定义信号
在类中声明带有注解的函数,这里函数名一定要是: XXXEventHandler的格式, Godot会自动把这样的声明翻译成信号名并在编辑器中显示.
       
        public delegate void MyDIYSignalEventHandler(string message);在合适的位置调用EmitSignal发射信号, 这里的信号名就是XXX, 不需要EventHandler
                EmitSignal(nameof(MyDIYSignal), message);
[*]在C#中连接信号
[*]我们可以直接在编辑器中通过GUI来联接信号
[*]也可以用如下代码获取到发射对象后, 用Connect方法连接信号, 写法如下:

var sender = GetTree().CurrentScene.GetNode<SendSingnal>("SendSignal1");
GD.Print(sender != null ? "Found SendSingnal node" : "SendSingnal node not found");
sender.Connect(nameof(sender.MyDIYSignal), new Callable(this, nameof(OnMyDIYSignalReceived)));
[*]处理信号
[*]我们定义OnMyDIYSignalReceived函数, 函数的输入参数与发射的信号之间是一一对应的, 函数中可以接收到的信号进行处理.

public void OnMyDIYSignalReceived(string message)
{
GD.Print("Received DIY signal with message: " + message);
this.GetNode<Label>("Label").Text = "Received: " + message;
}更多文章来自:
https://www.codebonobo.tech/post/35
https://www.codebonobo.tech/post/35#Godot中用C#脚本自定义信号

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

米嘉怡 发表于 2025-10-30 14:18:22

感谢分享,下载保存了,貌似很强大

慷规扣 发表于 2025-11-10 19:26:28

这个有用。

秦欣艷 发表于 2025-11-19 15:16:21

很好很强大我过来先占个楼 待编辑

丘娅楠 发表于 2025-12-7 18:48:15

新版吗?好像是停更了吧。

蝙俚 发表于 2025-12-16 01:33:58

收藏一下   不知道什么时候能用到

焦尔蕾 发表于 2026-1-8 19:22:39

感谢,下载保存了

腥狩频 发表于 2026-1-12 21:31:47

新版吗?好像是停更了吧。

甘子萱 发表于 2026-1-16 22:51:17

喜欢鼓捣这些软件,现在用得少,谢谢分享!

站竣凰 发表于 2026-1-18 04:40:08

过来提前占个楼

汇干环 发表于 2026-1-19 07:26:41

这个好,看起来很实用

方子楠 发表于 2026-1-21 00:06:45

很好很强大我过来先占个楼 待编辑

高小雨 发表于 2026-1-21 01:39:51

谢谢分享,试用一下

类饲冰 发表于 2026-1-22 00:05:45

过来提前占个楼

司寇涵涵 发表于 2026-1-24 19:30:22

热心回复!

院儿饯 发表于 2026-1-30 07:37:23

懂技术并乐意极积无私分享的人越来越少。珍惜

站竣凰 发表于 2026-2-1 05:22:15

东西不错很实用谢谢分享

镝赋洧 发表于 2026-2-4 09:24:34

感谢分享,学习下。

蒙飘 发表于 2026-2-5 08:53:05

这个有用。

汪之亦 发表于 2026-2-6 11:00:33

yyds。多谢分享
页: [1] 2
查看完整版本: Godot中用C#脚本自定义信号