UNET: UnassignedReferenceException when instatiating GameObject
Hey, Right now I'm struggeling with the Network Code of a Networkexample I've found somewhere here. Here's the Code: using UnityEngine; using UnityEngine.Networking;
 public class Player : NetworkBehaviour
 {
     public float moveSpeed = 3.0f;
     public GameObject bulletPrefab = null; // this prefab will be instantiated on the server
 
     private Vector3 _velocity;
 
     // Command means when the client call this function, it's "forwarded" to the server
     // and the code will actually run on server side
     // NOTE: the function name has to start with "Cmd"
     [Command]
     public void Cmd_Shoot()
     {
         // create server-side instance
         GameObject obj = (GameObject)Instantiate(bulletPrefab, transform.position, Quaternion.identity);
         // setup bullet component
         Bullet bullet = obj.GetComponent<Bullet>();
         bullet.velocity = transform.forward;
         // destroy after 2 secs
         Destroy(obj, 2.0f);
         // spawn on the clients
         NetworkServer.Spawn(obj);
     }
 
     public override void OnStartLocalPlayer()
     {
         base.OnStartLocalPlayer();
 
         // you can use this function to do things like create camera, audio listeners, etc.
         // so things which has to be done only for our player
     }
 
     private void Update()
     {
         // isLocalPlayer is true for the client who "owns" the player object
         // we only want input handling for our player
         if (!base.isLocalPlayer)
             return;
 
         // handle input here...
 
         _velocity = Vector3.zero;
 
         if (Input.GetKey(KeyCode.W))
             ++_velocity.z;
         if (Input.GetKey(KeyCode.S))
             --_velocity.z;
         if (Input.GetKey(KeyCode.A))
             --_velocity.x;
         if (Input.GetKey(KeyCode.D))
             ++_velocity.x;
 
         _velocity.Normalize();
 
         // when pressing the space button, ask the server to spawn a bullet
         if (Input.GetKeyDown(KeyCode.Space))
             Cmd_Shoot();
     }
 
     private void FixedUpdate()
     {
         // because Local Player Authority is true, the client has to move the player
         // only the resulting transform will be sent to the server and to the other clients
         if (!base.isLocalPlayer)
             return;
 
         // if that flag is not true, we should check that the code runs only on server
         // it could be done by checking base.isServer
 
         // transforming and other authoritive stuff here...
 
         transform.position += _velocity * Time.deltaTime * moveSpeed;
     }
 }
 
 using UnityEngine;
 using UnityEngine.Networking;
 
 public class Bullet : NetworkBehaviour
 {
     public float moveSpeed = 10.0f;
     public Vector3 velocity;
 
     private void FixedUpdate()
     {
         // we want the bullet to be updated only on the server
         if (!base.isServer)
             return;
 
         // transform bullet on the server
         transform.position += velocity * Time.deltaTime * moveSpeed;
     }
 }
 
               I copied it from an example but I didnt get it to work. I created an Bulletprefab and an Playerprefab, I set the Bulletprefab in the "Registred Spawanable Prefabs" and the Playerprefab in the "Player Prefab" of the Networkmanager. Furthermore both of them have the script and the NetworkIdentity / NetworkTransform attached to them.
I also set the Bulletprefab in the inspector of the Player Script, to assign the value but obviously Unity doesnt like it that way and it gives the Exception when I try to shot (by pressing space).
Is there anything I missed or anything else that fixess this? I didnt find anything helpful on other threads.
Thanks in advance!
Your answer