- Home /
NullReferenceException Error
public GameObject Su;
float countdown = 1;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate () {
countdown -= Time.deltaTime;
if (countdown <= 0) {
RaycastHit2D hit = Physics2D.Raycast (new Vector2 (transform.position.x, transform.position.y - 0.75f), -Vector2.up, 0.1f);
if (hit.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x, transform.position.y - 1, 0), Quaternion.identity);
}
RaycastHit2D hitSag = Physics2D.Raycast (new Vector2 (transform.position.x + 0.75f, transform.position.y), Vector2.right, 0.1f);
if (hit.collider.tag != "Water" && hitSag.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x + 1, transform.position.y, 0), Quaternion.identity);
}
RaycastHit2D hitSol = Physics2D.Raycast (new Vector2 (transform.position.x - 0.75f, transform.position.y), -Vector2.right, 0.1f);
if (hit.collider.tag != "Water" && hitSol.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x - 1, transform.position.y, 0), Quaternion.identity);
}
}
}
This is my script and error
NullReferenceException: Object reference not set to an instance of an object SuYerleştirme.FixedUpdate () (at Assets/Scripts/SuScripts/SuYerleştirme.cs:31)
but script works fine.
Answer by Landern · Sep 07, 2014 at 12:58 PM
Lets assume Su is always set to a prefab and thats not the issue. The line numbers from an exception doesn't really matter when you don't include the entire class, because you don't have the using statements and the class definition, the line numbers are off 4+ lines.
My assumption is that hit.collider is null in same cases, you have two other places that try and access the collider object on hit after you check for null.
RaycastHit2D hit = Physics2D.Raycast (new Vector2 (transform.position.x, transform.position.y - 0.75f), -Vector2.up, 0.1f);
// good, check to ensure it's NOT null, if it is, we make stuff.
if (hit.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x, transform.position.y - 1, 0), Quaternion.identity);
}
RaycastHit2D hitSag = Physics2D.Raycast (new Vector2 (transform.position.x + 0.75f, transform.position.y), Vector2.right, 0.1f);
if (hit.collider != null && hit.collider.tag != "Water" && hitSag.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x + 1, transform.position.y, 0), Quaternion.identity);
}
RaycastHit2D hitSol = Physics2D.Raycast (new Vector2 (transform.position.x - 0.75f, transform.position.y), -Vector2.right, 0.1f);
if (hit.collider != null && hit.collider.tag != "Water" && hitSol.collider == null) {
Instantiate (Su, new Vector3 (transform.position.x - 1, transform.position.y, 0), Quaternion.identity);
}
So, try checking for null again.
@$$anonymous$$ami27, no worries, hope it's working for you.
Your answer
Follow this Question
Related Questions
Issue with raycast hit 1 Answer
Remote Config gives me a NullReferenceException error 0 Answers
Why am I getting this error ? 2 Answers
NullReferenceException: Object reference not set to an instance of an object 0 Answers
NullReferenceException on empty project because of ScriptCompilerBase 0 Answers