- Home /
Server receives RPCs after RemoveRPCs and Destroy
I'm destroying network instantiated prefabs authoritatively by using
if(Network.isServer)
{
Network.RemoveRPCs(networkView.viewID);
Network.Destroy(gameObject);
}
This poses no problems for clients. However, in the time between the server sending Network.Destroy and the client receiving it, the client's prefab has sent multiple RPCs to the server. The server complains that it's receiving RPCs for a NetworkViewID which no longer exists.
Am I doing something stupid? If not, this must be happening to everyone, right?! There's no way for the client to stop sending RPCs until it receives Network.Destroy, and that takes a finite time. So how is the server supposed to stop listening?
I've tried working around this using Network.SetReceiveEnable() on the server straight after Network.Destroy, but that stops listening to all RPCs from that client, not just that networkView. I've tried using a unique group integer every time I use Network.Instantiate (and then stopping listening to that group from that player), but apparently networkView.group isn't set by Instantiate's group argument? So I have no idea what good that actually does, and the documentation does its best to confuse on the issue.
At the moment I'm taking the stopgap measure of turning off "Error Pause" in the editor, which is absolutely not tenable in the long or even medium term. So - am I A) doing something dumb, B) missing an existing method/workaround, or C) about to buy a third party networking solution (probably Tasharen Net)?
Your answer
Follow this Question
Related Questions
Network two players collision 2 Answers
Stuck on ConnectingToNameServer 0 Answers
modernized master server script? 1 Answer
In unity3d client “push” an object with a rigidbody2d slower than the host 0 Answers
Since switching to using offline & online scenes in the NetworkManager, Clients will not sync (UNET) 0 Answers