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 /
This question was closed Apr 23, 2016 at 08:03 PM by Misthra-Games for the following reason:

Figured it out

avatar image
0
Question by Misthra-Games · Apr 23, 2016 at 10:53 AM · c#instantiatenullreferenceexception

Why cant I instantiate????

So I'm trying to set up a random spawn, in 351 in the morning and i get this error : NullReferenceException: Object reference not set to an instance of an object. And before you ask, there is nothing wrong with the vector 3 Here is my problem code:`alt text

code.png (10.5 kB)
Comment
Add comment · Show 4
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
avatar image Cherno · Apr 23, 2016 at 11:12 AM 0
Share

First of all, if you use Random.Range with an int, the max number will be exclusive, so you have to write

 chosenSpawn = Random.Range(0, spawners.Length);

You can paste code in your post with the 101010 button, ins$$anonymous$$d of using a cropped screenshot.

Did you insert Debug.log lines to see which spawner was chosen?

avatar image Misthra-Games Cherno · Apr 23, 2016 at 06:57 PM 0
Share

I wast it to be one less than the length so that is not an option

avatar image Soraphis · Apr 23, 2016 at 01:54 PM 0
Share

well, what should be wrong with Vector3 ? you've got a Null Reference Exception(what is it?)(how to fix it) a Vector3 is a struct and can't be null. the only thing in your code snipped who can be null is Zombie. which is exactly the part you have not shown in your screenshot.

edit: don't listen to the answers. Debug.Log()-debugging is stupid, and will not realy work with more complex programms. Learn how to debug your code: here

edit 2: since you have not shown in which line the error appeard, and you have excluded the line numbers from your code snipped, it could be that zSone or zStwo are null.

avatar image Misthra-Games Soraphis · Apr 23, 2016 at 06:36 PM 0
Share

Sorry, heres my error: NullReferenceException: Object reference not set to an instance of an object $$anonymous$$asterScript.spawnZomb () (at Assets/Scripts/$$anonymous$$asterScript.cs:28) $$anonymous$$asterScript.Update () (at Assets/Scripts/$$anonymous$$asterScript.cs:67)

And thanks, the code is: using UnityEngine; using System.Collections;

 public class $$anonymous$$asterScript : $$anonymous$$onoBehaviour {
     public GameObject zSOne;
     public GameObject zSTwo;
     public GameObject Zombie;
     private int ZomsSpawned = 0;
     private int chosenSpawn;
     private int numberZombsPR = 1;
     private int numberZombsLeft = 1;
     private int currentRound = 1;
     private int points = 0;
     private GameObject[] spawners;
 
 
     // Use this for initialization
     void Start () {
         currentRound = 1;
         numberZombsLeft = numberZombsPR;
     }
 
     public void setSpawns(){
         spawners = new GameObject[] {zSOne, zSTwo};
     }
 
     public void spawnZomb() {
         chosenSpawn = Random.Range (0, spawners.Length - 1);
         Debug.Log (chosenSpawn);
         Debug.Log (Zombie);
         Vector3 spawner = new Vector3 (spawners[chosenSpawn].transform.position.x, spawners[chosenSpawn].transform.position.y, spawners[chosenSpawn].transform.position.z);
         Instantiate (Zombie, spawner, Quaternion.identity);
         ZomsSpawned += 1;
 
     }
 
     public int getCurrentRound () {
         return currentRound;
     }
 
     public void addPoints(int pointsGained) {
         points += pointsGained;
     }
 
     public int getZTR() {
         return numberZombsLeft;
     }
 
     public int calculateZombiesPR () {
         numberZombsPR = currentRound;
         return numberZombsPR;
     }
 
     public void changeRound() {
         currentRound += 1;
         numberZombsLeft = numberZombsPR;
         ZomsSpawned = 0;
     }
 
     public int killZom() {
         return numberZombsLeft -= 1;
     }
 
     // Update is called once per frame
     void Update () {
         if (ZomsSpawned < numberZombsPR) {
             spawnZomb ();
         }
 
         if (numberZombsLeft == 0) {
             changeRound ();
         }
 
     }
 
     void OnGUI() {
         GUI.Box (new Rect(20, 20, 100, 20 ), currentRound.ToString());
         GUI.Box (new Rect(Screen.width - 100, Screen.height - 20, 100, 20 ), points.ToString());
         GUI.Box (new Rect(0, Screen.height - 20, 100, 20 ), numberZombsPR.ToString());
     }
 }
 

2 Replies

  • Sort: 
avatar image
0

Answer by Blue-Cut · Apr 23, 2016 at 11:19 AM

One of your object is null, so what you need to do is just put some Debug.Log() to find which one it is. You say it's not the Vector3, what about the Zombie transform ?

Which line has a problem, is it the instantiation or is it later ?

 Debug.Log(spawners);
 Debug.Log(zSOne);
 Debug.Log(zSTwo);
 chosenSpawn = Random.Range(0, spawners.Length-1);
 
 Vector3 spawner = ; //your code
 Debug.Log(spawner);
 
 Debug.Log(Zombie);
 Instantiate (Zombie, spawner, Quaternion.identity);

Comment
Add comment · Share
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
avatar image
0

Answer by Misthra-Games · Apr 23, 2016 at 06:35 PM

Sorry, here's my code and the full error was : NullReferenceException: Object reference not set to an instance of an object MasterScript.spawnZomb () (at Assets/Scripts/MasterScript.cs:28) MasterScript.Update () (at Assets/Scripts/MasterScript.cs:67)

 using UnityEngine;
 using System.Collections;
 
 public class MasterScript : MonoBehaviour {
     public GameObject zSOne;
     public GameObject zSTwo;
     public GameObject Zombie;
     private int ZomsSpawned = 0;
     private int chosenSpawn;
     private int numberZombsPR = 1;
     private int numberZombsLeft = 1;
     private int currentRound = 1;
     private int points = 0;
     private GameObject[] spawners;
 
 
     // Use this for initialization
     void Start () {
         currentRound = 1;
         numberZombsLeft = numberZombsPR;
     }
 
     public void setSpawns(){
         spawners = new GameObject[] {zSOne, zSTwo};
     }
 
     public void spawnZomb() {
         chosenSpawn = Random.Range (0, spawners.Length - 1);
         Debug.Log (chosenSpawn);
         Debug.Log (Zombie);
         Vector3 spawner = new Vector3 (spawners[chosenSpawn].transform.position.x, spawners[chosenSpawn].transform.position.y, spawners[chosenSpawn].transform.position.z);
         Instantiate (Zombie, spawner, Quaternion.identity);
         ZomsSpawned += 1;
 
     }
 
     public int getCurrentRound () {
         return currentRound;
     }
 
     public void addPoints(int pointsGained) {
         points += pointsGained;
     }
 
     public int getZTR() {
         return numberZombsLeft;
     }
 
     public int calculateZombiesPR () {
         numberZombsPR = currentRound;
         return numberZombsPR;
     }
 
     public void changeRound() {
         currentRound += 1;
         numberZombsLeft = numberZombsPR;
         ZomsSpawned = 0;
     }
 
     public int killZom() {
         return numberZombsLeft -= 1;
     }
 
     // Update is called once per frame
     void Update () {
         if (ZomsSpawned < numberZombsPR) {
             spawnZomb ();
         }
 
         if (numberZombsLeft == 0) {
             changeRound ();
         }
 
     }
 
     void OnGUI() {
         GUI.Box (new Rect(20, 20, 100, 20 ), currentRound.ToString());
         GUI.Box (new Rect(Screen.width - 100, Screen.height - 20, 100, 20 ), points.ToString());
         GUI.Box (new Rect(0, Screen.height - 20, 100, 20 ), numberZombsPR.ToString());
     }
 }
 
Comment
Add comment · Share
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

Follow this Question

Answers Answers and Comments

139 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 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Instantiation Problem 0 Answers

SetParent after Instantiate. NullReferenceException error 1 Answer

NullRefrenceException - Cant find the cost 1 Answer

Instantiation of my GameObjects spell (from other script) 0 Answers

NullReferenceException 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