- Home /
Network RPC - exclude specific client
Hi, i have a setup with what i would call an authoritative Server.
There, client-copies on other clients are despawned by
GameObject.Destroy(this.gameobject)
based on Distance to each other (and spawned too. ..Some kind of interest management in background).
copies are synced with a networkview on each copy. But when i destroy a remote client-copy, the player still recieves the update-rpc's for this viewID, and respectively generates many error messages. how can i exclude that specific client from receiving rpcs for the destroyed copy? (other players may still need updates)
rpcmode.others is used from the on-server player instances to update the clones.
All clients and client-copies are created by rpcs (no network.instantiate).
SetScope may not be feasable, because of the limit and me having trouble managing that for the big amount of group-shifting needed.
Thanks in advance.
(P.S. instantiation works like this: client sends spawnrequest, server allocates ViewID, sends rpc(spawngranted,playerid, viewID), client Object.instantiates his copy. When the on-server intance enters another on-server instances radius they each spawn their copy on the other connected machine with their copies networkView set to their viewID. sync is then accomplished through rpc's)
Answer by whydoidoit · Jun 19, 2012 at 06:15 PM
So if you can't use Scope I think you are going to actually have to address your RPCs to each individual player. Clearly a pain, but achieves the reduction in bandwidth usage on those distance players. in this circumstance you might even consider sending the updates for a series of players in a single RPC call directed accordingly. Or just don't destroy those game objects, deactivate them...
Yes, thanks. A few $$anonymous$$utes ago i just did exactly that (adress each player separately from a list). It works, but feels inefficient because of so many loops. I may try this 'bundle'-sending too.
That could be better - I mean you are kind of forgetting the standard stuff and writing you own protocol - but it sort of feels better to me :)
I'm not sure how inefficient those loops are - something similar is probably happening internally...
Your answer
Follow this Question
Related Questions
RPC calls to a specific client? 1 Answer
How can i send a Player list to every Client 0 Answers
Spawning Clients 1 Answer
Networking RPC calls never sent to other clients 1 Answer
Getting rotation to work on client 1 Answer