- Home /
UnassignedReferenceException and Invalid Cast exception
In my script I keep on getting errors with UnassignedReferenceException and Invalid cast exceptions
The errors are
InvalidCastException: Cannot cast from source type to destination type. Obst1_Attack.obst1 () (at Assets/Standard Assets/resources/Obstacles/Obst1_Attack.cs:15) Obst1_Attack.Update () (at Assets/Standard Assets/resources/Obstacles/Obst1_Attack.cs:41)
UnassignedReferenceException: The variable Obstacle2 of Obst1_Attack has not been assigned. You probably need to assign the Obstacle2 variable of the Obst1_Attack script in the inspector. UnityEngine.Object.Internal_InstantiateSingle (UnityEngine.Object data, Vector3 pos, Quaternion rot) UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) Obst1_Attack.obst3 () (at Assets/Standard Assets/resources/Obstacles/Obst1_Attack.cs:27) Obst1_Attack.Update () (at Assets/Standard Assets/resources/Obstacles/Obst1_Attack.cs:45)
This is my code
using UnityEngine;
using System.Collections;
public class Obst1_Attack : MonoBehaviour {
// Use this for initialization
void Start () {
}
public float speed = 10f;
public GameObject Obstacle1_0;
public GameObject Obstacle0;
public GameObject Obstacle2;
public bool Iscollision = false;
void obst1 () {
Rigidbody2D obst1Ingame = (Rigidbody2D) Instantiate(Obstacle1_0, transform.position, transform.rotation);
while (Iscollision != false) {
obst1Ingame.velocity = transform.forward * speed;
}
}
void obst2 () {
Rigidbody2D obst2Ingame = (Rigidbody2D) Instantiate(Obstacle0, transform.position, transform.rotation);
while (Iscollision != false) {
obst2Ingame.velocity = transform.forward * speed;
}
}
void obst3 () {
Rigidbody2D obst3Ingame = (Rigidbody2D) Instantiate(Obstacle2, transform.position, transform.rotation);
while (Iscollision != false) {
obst3Ingame.velocity = transform.forward * speed;
}
}
void OnCollisionEnter(Collision collision) {
ContactPoint contact = collision.contacts[0];
Iscollision = true;
}
void Update() {
float randomizer = Random.Range(0.0f, 1.0f);
float randomizer2 = Random.Range (0f, 100f);
if (randomizer2 < 44 && randomizer2 > 34) {
if (randomizer <= 0.34 && randomizer >= 0.0) {
obst1 ();
} else if (randomizer <= 0.67 && randomizer > 0.34) {
obst2 ();
} else if (randomizer <= 1.0 && randomizer > 0.67) {
obst3 ();
}
}
}
}
I assigned the prefabs in the inspector but it still gives me the error.
Your answer

Follow this Question
Related Questions
Modifying the stock FPS controller script 1 Answer
image got pixelated on ios device 0 Answers
Not expecting if on line 17 1 Answer
While loop 2 Answers
How to Stop Camera From Rotating when x,y,and z is equal to 90 degrees 1 Answer