Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 11 Next capture
2021 2022 2023
1 capture
11 Jun 22 - 11 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 /
avatar image
0
Question by SovietBear · Aug 14, 2015 at 05:02 PM · c#errormethod

'NullReferenceException: Object reference not set of an object' When calling a method.

Whenever I call the coroutine spawnDelay found in this script:

     public string spawnPos;
     public GameObject DataKeeper;
     public SpawnHelperScript SHS;
     public bool canSpawn = false;
     public int spawnDelayTime = 2;
     public int testSpawn  = 5;
     GruntAI GAI;
 
     // Use this for initialization
     void Awake () {
         DataKeeper = GameObject.FindGameObjectWithTag("DataKeeper");
         SHS = DataKeeper.GetComponent<SpawnHelperScript>();
     }
     
     // Update is called once per frame
     void Update () {
 
     }
 
     public void spawnGrunt(int amount){
         Debug.Log ("spawnGrunt called!");
         GameObject newEnemy = (GameObject)Instantiate (grunt, transform.position, transform.rotation);
         GAI = newEnemy.GetComponent<GruntAI>();
         if (!SHS.midSpawned && SHS.enemyCount == 0) {
             SHS.enemyCount ++;
             SHS.midSpawned = true;
             GAI.Pos = "mid";
         } else if (SHS.midSpawned && (SHS.rightCount + SHS.leftCount) <= 0) {
             SHS.enemyCount ++;
             SHS.rightCount ++;
             GAI.Pos = "right";
         } else if (SHS.leftCount > SHS.rightCount) {
             SHS.enemyCount ++;
             SHS.rightCount ++;
             GAI.Pos = "right";
         } else if (SHS.leftCount < SHS.rightCount) {
             SHS.enemyCount ++;
             SHS.leftCount ++;
             GAI.Pos = "left";
         } else if (SHS.rightCount == SHS.leftCount) {
             int RandomNum = Mathf.RoundToInt(Random.value);
             if(RandomNum == 0){
                 SHS.enemyCount ++;
                 SHS.leftCount ++;
                 GAI.Pos = "left";
             }else if(RandomNum == 1){
                 SHS.enemyCount ++;
                 SHS.rightCount ++;
                 GAI.Pos = "right";
             }
         }
     }
 
     public IEnumerator spawnDelay(int D, int amount){
         for (int i = 0; i < amount; i++) {
             spawnGrunt(amount);
             yield return new WaitForSeconds (D);
         }
 
     }
 
 }

From this script:

 using UnityEngine;
 using System.Collections;
 
 public class SpawnHelperScript : MonoBehaviour {
     public int enemyCount;
     public int leftCount;
     public int rightCount;
     public bool midSpawned = false;
     public EnemySpawnScript ESC;
     public GameObject ES;
 
     void Awake () {
         ES = GameObject.FindGameObjectWithTag ("EnemySpawner");
         ESC = ES.GetComponent <EnemySpawnScript>();
         Debug.Log ("Awake called");
     }
 
     public void wave(int enemyNum, string type, int SpawnDelay){
         if (type == "grunt") {
             StartCoroutine (ESC.spawnDelay(SpawnDelay, enemyNum));
         } else {
             Debug.LogError ("Wave Enemy type non-existant!");
         }
     
     }
 
 }
 

Which is being called from this script:

 using UnityEngine;
 using System.Collections;
 
 public class waveScript : MonoBehaviour {
     public GameObject DataKeeper;
     public SpawnHelperScript SHS;
 
     // Use this for initialization
     void Awake () {
         DataKeeper = GameObject.FindGameObjectWithTag("DataKeeper");
         SHS = DataKeeper.GetComponent<SpawnHelperScript>();
         SHS.wave (5, "grunt");
     }
 
 }

It spits out this error:

 NullReferenceException: Object reference not set of an object SpawnHelperScript.wave (Int32 enemyNum, System.String type) (at Assets/Scripts/Game Scripts/SpawnHelperScript.cs:19)







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

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Slobdell · Aug 14, 2015 at 06:26 PM

It's telling you exactly what's wrong, on line 19 of SpawnHelperScript "type" is null. So you need to change something wherever that method is being called from because it's passing in a string for type that hasn't been initialized.

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

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

26 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

Related Questions

My Function is not showing up in the OnClick Menu 2017.2.0f 0 Answers

Multiple Cars not working 1 Answer

My function doesn't appears in the OnClick button script 5 Answers

Animation Error 0 Answers

Distribute terrain in zones 3 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