【发布时间】:2021-10-28 08:22:43
【问题描述】:
鉴于我的场景树:
Main_control(类型:控制)(父)
-
mnk_game(类型:控制)(儿童)
我可以使用来自Main_control 的信号在mnk_game 的脚本中运行方法,但反过来就不行(使用来自mnk_game 的信号调用Main_control 中的方法)
错误:
emit_signal:从信号“mnk_game_finished”调用方法时出错:“Control(Main_control.cs)::mnk_show_game”:找不到方法..
家长代码:
public class Main_control : Control
{
public override void _Ready()
{pass}
public void mnk_show_game()
{
GD.Print("mnk_show_game reached"); //What I want to reach
}
}
子代码:
public class mnk_game : Control
{
[Signal]
public delegate void mnk_game_finished();
private Godot.Control game_controller;
public override void _Ready()
{
game_controller = (Control)GetParent<Godot.Control>();
this.Connect("mnk_game_finished", game_controller, "mnk_show_game");
}
public void any_method()
{
this.EmitSignal("mnk_game_finished");
}
}
当我在子脚本中调用any_method 方法时,我希望能够在父脚本中访问mnk_show_game 方法。我可以这样做吗?如果有,怎么做?
【问题讨论】: