You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot 3.5.1中PGSGP信号无法关联函数问题求助

针对Godot 3.5.1中PGSGP与Nakama集成问题的解决方案

1. 校验信号连接逻辑

确保信号连接代码的准确性,PGSGP的信号名称和连接方式不能出错:

func _ready():
    # 替换为你的PGSGP节点实际路径
    var play_service = get_node("GodotPlayGamesServices")
    # 连接登录成功信号到ConnectToNakama
    play_service.connect("sign_in_success", self, "ConnectToNakama")
    # 连接登录失败信号到对应处理函数
    play_service.connect("sign_in_failed", self, "_on_sign_in_failed")
    # 执行登录
    play_service.signIn()

注意:PGSGP的登录信号名称是sign_in_success和sign_in_failed,大小写和下划线必须完全匹配,否则信号无法触发。

2. 排查节点引用与初始化问题

  • 先确认play_service不是空引用:在调用connect前添加print(play_service),如果输出null,说明节点路径错误,或者节点未完成加载,需修正节点路径或调整代码执行时机。
  • 部分PGSGP版本需要先执行初始化:如果插件提供initialize方法,需在signIn前调用play_service.initialize(),确保插件完成初始化后再执行登录。

3. 修复代码补全提示异常

  • 给play_service添加类型注解,帮助Godot识别插件类型,恢复代码补全:
var play_service: GodotPlayGamesServices

func _ready():
    play_service = get_node("GodotPlayGamesServices")
    # 后续信号连接与登录代码
  • 重启Godot编辑器并执行Project > Clean Project清除缓存,重新输入代码后补全提示应该会正常显示。

4. 解决signIn移至其他函数无法登录的问题

  • 避免在_init中调用signIn,该阶段节点树尚未初始化完成,建议在_ready或用户交互事件(如按钮点击回调)中调用。
  • 检查Android权限配置:确认AndroidManifest.xml中已添加Google Play Games的必要配置(如APP_ID元数据),且项目已关联Google Play Console中的对应游戏项目,权限缺失会导致登录失败。

5. 调试信号触发状态

在ConnectToNakama函数开头添加打印语句,确认信号是否真的未触发:

func ConnectToNakama():
    print("PGSGP登录成功,开始连接Nakama")
    # 你的Nakama连接逻辑

如果无打印输出,说明信号未被触发,需检查PGSGP插件版本是否适配Godot 3.5.1,尝试更新至最新兼容版本。

内容的提问来源于stack exchange,提问作者Benjamin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:55:20