godot - RPC 请求出错并且不理解错误
问题描述
我正在尝试使用 godot 制作专用服务器和客户端,我可以通过互联网连接到服务器,但是当我制作 RPC 时,我收到此错误:
错误:找不到节点:游戏状态
在:场景/主/node.cpp:1382错误:_process_get_node:无法从 RPC 获取路径:游戏状态位于
:core/io/multiplayer_api.cpp:248错误:收到无效数据包。未找到请求的节点。
在:核心/io/multiplayer_api.cpp:194
服务器 :
func _client_connected(id):
print('Client ' + str(id) + ' is connected')
var newClient = load("res://remote_client.tscn").instance()
newClient.set_name(str(id))
get_tree().get_root().add_child(newClient)
remote func _register_player_to_server(id, info):
players_server[id] = info
客户 :
func connect_to_server(player_nickname, ip):
self_data.name = player_nickname
get_tree().connect('connected_to_server', self, '_connected_to_server')
var peer = NetworkedMultiplayerENet.new()
if ip == null or ip == '':
peer.create_client(DEFAULT_IP, DEFAULT_PORT)
else:
peer.create_client(ip, DEFAULT_PORT)
get_tree().set_network_peer(peer)
func _connected_to_server():
players[get_tree().get_network_unique_id()] = self_data
print("here")
rpc_id(1, '_register_player_to_server', get_tree().get_network_unique_id(), self_data)
print("wtf")
_conneccted_to_server()
func 应该调用服务器中的func _register_player_to_server()
,然后存储玩家的值信息。
请注意,客户端位于名为 gamestate 的单例中,并且错误显示在服务器的控制台中。
解决方案
我的节点不在路径上(因此出现错误)。
推荐阅读
- google-sheets - Find values string inside a string on google sheets
- python - How to get the n most frequent or top values per column in python pandas?
- python-3.x - Good practice to implement a ThreadPool of intensive processing inside a Django App
- java - simulate touch events on Android
- reactjs - React Testing onClick Console.log
- c# - R1C1-formulas in Gembox.Spreadsheet
- python - 如何根据模糊条件从 Numpy 数组中选择值?
- macos - Powerpoint 的官方文档 AppleScript 命令在哪里?
- omnet++ - INET wlan[0].radio 中的无线 NeSTiNg 主机:“接收开始:未尝试”
- amazon-web-services - 为不同用户使用不同权限保护 AWS S3 中文件的最佳方法是什么?