Search Unity

  1. Unity 2020.1 has been released.
    Dismiss Notice
  2. We are looking for feedback on the experimental Unity Safe Mode which is aiming to help you resolve compilation errors faster during project startup.
    Dismiss Notice
  3. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

UnassignedReferenceException with box collider trigger

Discussion in 'Scripting' started by woahitsjc, Jul 16, 2016.

  1. woahitsjc

    woahitsjc

    Joined:
    Jul 16, 2016
    Posts:
    5
    So I have a platform spawner spawning 10 platforms(SpawnPlatform script) with a 2d box collider attached so when the ball enters, it instantiates the object a little futher away from the trigger (TriggerCheck script). However I am getting an UnassignedReferencedException when the ball enters the trigger. It states that my variable object in the TriggerCheck script has not been assigned.
    Here is what I got for the main part of the scripts, any advice to solve this problem would be great. Thanks!

    Platform Spawn
    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4.  
    5. public class EndlessPlatform : MonoBehaviour {
    6.  
    7.   public GameObject platform;
    8.   public GameObject jumpBox;
    9.   Vector2 lastPos;
    10.   float size;
    11.   public bool gameOver;
    12.  
    13.   // Use this for initialization
    14.   void Start () {
    15.      lastPos = platform.transform.position;
    16.      size = platform.transform.localScale.x;
    17.  
    18.      for(int i = 0; i < 10; i++) {
    19.         SpawnPlatforms();
    20.      }
    21.   }
    22.  
    23.    // Update is called once per frame
    24.    void Update () {
    25.  
    26.    }
    27.  
    28.   void SpawnPlatforms() {
    29.      Vector2 pos = lastPos;
    30.      pos.x += size;
    31.      lastPos = pos;
    32.  
    33.      Instantiate(platform, pos, Quaternion.identity);
    34.      }
    35. }
    36.  
    TriggerCheck
    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4.  
    5. public class TriggerCheck : MonoBehaviour {
    6.  
    7.   public GameObject jumpBox;
    8.   public GameObject slideBox;
    9.  
    10.   Vector2 lastPos;
    11.   float size;
    12.  
    13.   // Use this for initialization
    14.   void Start () {
    15.      lastPos = transform.parent.position;
    16.      size = transform.parent.localScale.x;
    17.   }
    18.  
    19.    // Update is called once per frame
    20.    void Update () {
    21.  
    22.    }
    23.  
    24.   void OnTriggerEnter2D(Collider2D col) {
    25.      Vector2 pos = lastPos;
    26.      pos.x += size;
    27.      lastPos = pos;
    28.  
    29.      int rand = Random.Range(0, 20);
    30.      if (col.gameObject.tag == "Player" && rand < 11) {
    31.         Instantiate(jumpBox, new Vector2(pos.x + 2, pos.y + 0.7f), Quaternion.identity);
    32.      }
    33.   }
    34.  
    35.   void OnTriggerExit2D(Collider2D col) {
    36.      if (col.gameObject.tag == "Player") {
    37.      Destroy(transform.parent.gameObject, 5f);
    38.      }
    39.   }
    40. }
    41.  
     
  2. LeftyRighty

    LeftyRighty

    Joined:
    Nov 2, 2012
    Posts:
    5,148
    assign something to the variable in question...
     
  3. woahitsjc

    woahitsjc

    Joined:
    Jul 16, 2016
    Posts:
    5
    Got it, my prefab wasn't the same as my object in the scene so the script was using the object in the scene instead.
     
  4. khanrocking394

    khanrocking394

    Joined:
    Jun 20, 2020
    Posts:
    2
    i don't know bro same problem here
     
unityunity