Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only. On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live. Read our full announcement for more information and let us know if you have any questions.

Problem with spawn object of Client

Discussion in 'Multiplayer' started by ApanasikOG, Jun 11, 2017.

  1. ApanasikOG


    Sep 29, 2016
    Hello everyone! I'm developing my Final Qualifying Work for a university. It's a mobile multiplayer-game which contains all data with help Google Services (save/load/refresh) and doing connections by UNet servers. And on my final step to complete project I've found very annoying for me a problem: we have 2 clients while one of them - it's the host-client. Player have class which contains array of prefabs. Every prefab of every player have specific values of variables: power, health points, speed, strong, cost etc. When we playing host-client spawn own prefabs without any problem: if own prefab have 20 strong points - in the game that prefab will be have the same value of strong (20 points). But if client want to spawn own prefab (for example, with 50 strong points) - server will spawn server's prefab (with 20 strong points). Generally: client can't to spawn own object with own values. What to do, guys? Until the 16th June I must to solve this problem.​

    What was I doing:
    • Was trying to get object by GetInstanceID(). I was getting this ID, client getting this ID too but as before I can not to create (to spawn) object of client;
    • I can't to spawn object which we got as parameter from signature of a method with attribute [Command] because in this case client will be throw NullReferenceException;
    • We can't to spawn object with [SyncVar] too;
    • If we change attribute of our CmdinstantiateObject() method from [Command] to [Server] than only server will can to spawn own prefabs;
    • Was trying to registrate prefabs in OnStartClient) on each client - without any result;
    Hopefully anybody can to help me!

    Code (CSharp):
    2. [Command]
    3. private void CmdInstantiateObject(Vector3 pos, int _currentUnit, int _money)
    4. {
    5.      GameObject objectForInstantiate
    6.           = Instantiate(_units[_currentUnit], pos, Quaternion.Euler(90, 0, 0));    
    7.      NetworkServer.Spawn(objectForInstantiate);
    8. }
  2. ApanasikOG


    Sep 29, 2016
    Guys, anyone know how to help me?