Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by rehne93 · Dec 16, 2015 at 02:17 PM · networkingbeginnermultiplayer-networkinginstantiate prefab

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!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

43 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

TrailRender not showing in all clients using Mirror networking 1 Answer

RPC sending Failed 0 Answers

Cannot connect more than 9 players Network Manager 0 Answers

UNET Clients Laggy 0 Answers

How to decide an asynchronous multiplayer solution for a turn based mobile chess game? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges