我们尝试了不同的方法:
1. 使用Destroy(gameObject)
这显然行不通,因为它只会在本地销毁。
2. 使用NetworkServer.Destroy(gameObject)
由于我们没有权限,这将失败。
3. 使用命令来销毁对象
我们尝试调用一个在其中销毁对象的服务器命令时,它失败了。由于权限检查:
"Trying to send command for object without authority."
4. 首先分配权限
我们尝试通过GetComponent().AssignClientAuthority(connectionToClient)来分配权限,但会收到错误消息:
"AssignClientAuthority can only be call on the server for spawned objects."
在命令中尝试这样做将由于第3点而失败。
还有其他销毁gameObjects的可能性吗?销毁gameObjects的正确方式是什么?
编辑:我们大部分对象都是在运行时(在Command中)通过NetworkServer.SpawnWithClientAuthority或NetworkServer.Spawn生成的。
NetworkServer.Spawn
来创建你想要删除的对象? - Ruzihm