Class 连接无节点和通过子节点的信号-Godot
到目前为止我一直想做的-Class 连接无节点和通过子节点的信号-Godot,class,nodes,godot,gdscript,Class,Nodes,Godot,Gdscript,到目前为止我一直想做的- 我有一个名为recipes的类单例脚本。我有一个信号启动了。我有recipe类的对象。其中一个对象是面条。我想将信号launched连接到面条中一个名为的函数(启动后)。我不确定要将信号连接到哪个节点。我使用一个类是因为我有多个配方,每个配方都有自己的启动信号 我还想知道如何将信号连接到单例脚本中的函数,而不需要任何节点 我使用的代码也是一样的- connect("launched", self, "launched_noodle") 我知道使用“连接”而不使用前面的
我有一个名为
recipes
的类单例脚本。我有一个信号启动了
。我有recipe
类的对象。其中一个对象是面条
。我想将信号launched
连接到面条中一个名为的函数(启动后)
。我不确定要将信号连接到哪个节点。我使用一个类是因为我有多个配方
,每个配方都有自己的启动信号
我还想知道如何将信号连接到单例脚本中的函数,而不需要任何节点
我使用的代码也是一样的-
connect("launched", self, "launched_noodle")
我知道使用“连接”而不使用前面的节点会产生错误。
错误-
错误(3,1)意外的令牌标识符:connect
我如何-
1)将其连接到写入代码的节点-w.r.trecipes
和面条
。您通常将信号连接到哪些节点?
2)当我只想将其连接到Singleton脚本时进行连接。
我试图用谷歌搜索这个问题,结果发现了一个类似的问题。我不明白完整的问题或答案。也许你可以参考一下
其他资料-
我的班级代码(单身)recipe
extends Node2D
class_name recipe
signal launched
面条
和其他儿童的代码-
extends recipe
connect("launched", self, "launched_noodle")
代码流-
用户触发烹饪站
,屏幕上将打开烹饪站
节点
然后,检查用户的级别和其他参数,并在屏幕上显示适当的配方。这个配方
是一个定义的类
——一个Godot单例——并且有许多物理节点链接在烹饪站下
一旦相应的节点被定位并显示在屏幕上,我想要启动的信号应该由烹饪站发出。此信号
-根据其发出的节点,在屏幕上进行某些更改。这是通过名为启动的函数\u recipename
发生错误意外的令牌标识符:connect
,因为connect
是一个函数,所以您需要在另一个函数的范围内调用它,如\u ready
。根据您描述的流程,听起来像是启动的
应该是烹饪站中定义的信号,而不是配方
,因此您可能会有如下情况:
- CookingStation(定义启动的信号
)
- 面条(定义启动时的功能
)
在面条.gd中
:
extends Recipe
func _on_launched():
print("Noodles was launched")
func _ready():
var cooking_station = get_parent()
cooking_station.connect("launched", self, "_on_launched")
这里真的不需要单身汉。如果您认为您需要一个单例,以便面条
可以继承配方
,那么这是不必要的。只要添加class\u name Recipe
指令,就会将Recipe
放入全局范围,以便其他脚本可以从中继承。“我有一个名为recipes的类单例脚本”。。。“我有多种食谱”。这些说法似乎自相矛盾。根据定义,单例只有一个实例。另外,请分享您的完整代码。这个错误听起来像是语法错误。嗨。我的独生子女是一个班级,有很多孩子。我已经按照要求添加了额外的代码。扩展一个单例类来创建非单例节点对我来说是一个非常奇怪的模式。你能退一步,解释一下你在高层次上真正想要完成什么吗?我正在尝试创建一个系统,其中有一个烹饪站,有多个食谱节点。所有这些参数都被隐藏,并且与玩家级别和某些其他参数匹配的参数显示在屏幕上。所有的菜谱都有标准的函数——所以我创建了一个所有节点都可以访问的类——因此在一个单例脚本中。我将该类扩展到屏幕中的所有节点,因为所有节点的变量值都不同,即使变量名称相同。类似地,我还想要一个所有节点都通用的信号,所以我尝试将其放入类中。当你说Singleton
,你是不是特别指一个,即自动加载
节点?嗨,这似乎有作用-但现在我需要为每种类型的配方制作单独的信号。有没有一种方法可以让我只做一个,让它为所有人工作?我仍然不确定我是否理解,但也许你想要一个参数化的信号<代码>发射信号(配方名称)
,发射信号(“发射”、“面条”)
?是的,现在我想,一个参数化的信号可能会解决我的问题。谢谢,我将研究带参数的信号。