- Home /
Network.Destroy problem
Hello. I am having the problems with Network.Destroy(). it works fine, but when i am reconnecting to server, all destroyed objects are back. What do i have to do?
Nobody knows how to solve it, it seems so. Okay, i'll try to do it in another way.
Answer by Bunny83 · Sep 27, 2012 at 06:28 PM
Well, the simple answer is: Don't use buffered RPCs ;) That means don't use Network.Instantiate. Network.Instantiate sends a buffered RPC to all clients to create an object, Network.Destroy doesn't. So each creation is "stored" so when a new client connects, all Network.Instantiate calls are executed, but since Network.Destroy calls aren't buffered those objects doesn't get destroyed. Beside this behaviour if you run your server for hours there will be thousands (or ten / hundred thousand) of Instantiate calls which get all send and executed on new players.
Network.Instantiate is easy to use, but it's actually not well implemented since you can't really remove the instantiate call except when you remove all buffered RPCs from a player or a group.
An alternative is to instantiate the objects "manually" and keep track of what objects are there on the server. When a new client connects you just send him the objects that are currently there.
There's no "easy fix" for your problem.
Answer by BlackLotus · Feb 14, 2014 at 08:54 PM
There used to be an issue with networkView.RemoveRPCs(networkView.viewID) not removing the buffered Network.Instantiate call.
I do believe this has been fixed since 4.3.x (not sure which).
I currently use a simple:
public void RemoveFromGame() {
Network.RemoveRPCs(this.networkView.viewID);
Network.Destroy(this.gameObject);
}
And it seems to work fine, for players currently in the game and later joiners...
Your answer
Follow this Question
Related Questions
A node in a childnode? 1 Answer
Unity Network 3 Answers
NullReferenceException: Object reference not set to an instance of an object 0 Answers
Information sending frequency 1 Answer
Sending A Variable Over The Network 1 Answer