Hey guys playing around with a multiplayer shooter game and was wondering what the best way to handle instantiating the projectiles would be. Ive heard that Network.Instantiate is not the best way to go and it does seem to cause some problems for me because the projectiles are all still being spawned with a new client connecting(even ones that have already been destroyed using Network.Destroy.
Also note that the projectiles have random values assigned to them so if I was to do my own RPC to make the instance of the player that is firing fire a projectile would they all get the same random value?
Please any help would be of great use and thanks for your time.
Random numbers are always calculated on the local machine meaning if you leave it up to the client he will not spawn the same type of random that everyone else will. To achieve this either send the random number generated to everyone else via an RPC call or the proper but more difficult way to do it is to send the random seed the server generated when the player connects so that all players RNG’s will be the same.
Your other question Network.Destroy is not buffered. You need to call network destroy and RPC.Remove as an RPC.AllBuffered call so that new clients that connect will not see that bullet.