Search Unity

Unable to spawn non-player object (with rigidbody2D) using NetworkServer.Spawn() method

Discussion in 'Getting Started' started by manan77patel, Jun 11, 2016.

  1. manan77patel

    manan77patel

    Joined:
    Jun 11, 2016
    Posts:
    1
    I am new to Unity and trying to create a multiplayer Pong game. I was able to spawn Player objects using Network Manager (auto-spawn) and Network Transform and Network Identity components, but when I try to spawn 'Ball' object (non-player game object), using NetworkServer.Spawn() method, then its not working. Note that, I have added Network Identity and Network Transform components to Ball gameobject. Also, I have registered my Ball prefab to Network Manager's Spawnable Prefabs slot.

    Below is my code for spawning Ball gameobject -


    Code (CSharp):
    1. using UnityEngine;
    2. using UnityEngine.Networking;
    3. using System.Collections;
    4.  
    5. public class BallSpawner : NetworkBehaviour {
    6.  
    7.     [SerializeField]
    8.     private GameObject ballPrefab;
    9.  
    10.     GameObject ball;
    11.     NetworkHash128 ballAssetId;
    12.  
    13.     void Start()
    14.     {
    15.         ballAssetId = ballPrefab.GetComponent<NetworkIdentity>().assetId;
    16.         ball = Instantiate(ballPrefab, Vector3.zero, Quaternion.identity) as GameObject;
    17.     }
    18.  
    19.     public override void OnStartServer()
    20.     {
    21.         NetworkServer.Spawn(ball);
    22.         base.OnStartServer();
    23.     }
    24. }
    25.  
    Any help is highly appreciated.
    Thanks.