Godot中用C#腳本自定義信號
Godot中用C#腳本自定義信號
-
自定義信號
在類中聲明帶有[Signal]注解的函數(shù), 這里函數(shù)名一定要是: XXXEventHandler的格式, Godot會自動把這樣的聲明翻譯成信號名并在編輯器中顯示.
[Signal]
public delegate void MyDIYSignalEventHandler(string message);
在合適的位置調(diào)用EmitSignal發(fā)射信號, 這里的信號名就是XXX, 不需要EventHandler
EmitSignal(nameof(MyDIYSignal), message);
- 在C#中連接信號
- 我們可以直接在編輯器中通過GUI來聯(lián)接信號
- 也可以用如下代碼獲取到發(fā)射對象后, 用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函數(shù), 函數(shù)的輸入?yún)?shù)與發(fā)射的信號之間是一一對應(yīng)的, 函數(shù)中可以接收到的信號進(jìn)行處理.
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#腳本自定義信號
人工智障與神經(jīng)病網(wǎng)絡(luò)
http://www.rzrgm.cn/JiangOil/

浙公網(wǎng)安備 33010602011771號