- Home /
Newbie Spawner C# Help
Please help. I'm following an online tutorial where the C# code is given to us. I'm not sure where or how I messed up as we are expected to just copy/paste the code in. Looks like it is on line 14. Any ideas for this newbie?
"nullreferenceexception Object Reference not set to an instance of an object Spawner.Awake () (at Assets/Scripts/Spawner.cs:14)
//------------------------------
using UnityEngine;
using System.Collections;
//------------------------------
public class Spawner : MonoBehaviour
{
public float MaxRadius = 1f;
public float Interval = 5f;
public GameObject ObjToSpawn = null;
private Transform Origin = null;
//------------------------------
void Awake()
{
Origin = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
}
//------------------------------
// Use this for initialization
void Start()
{
InvokeRepeating("Spawn", 0f, Interval);
}
//------------------------------
void Spawn()
{
if (Origin == null) return;
Vector3 SpawnPos = Origin.position + Random.onUnitSphere * MaxRadius;
SpawnPos = new Vector3(SpawnPos.x, 0f, SpawnPos.z);
Instantiate(ObjToSpawn, SpawnPos, Quaternion.identity);
}
//------------------------------
}
//------------------------------
Answer by EpsilonQoppa · Jun 24, 2017 at 10:09 PM
This code is returning null:
GameObject.FindGameObjectWithTag("Player")
You're then trying to
.GetComponent<Transform>();
On said null object.
This could be caused by a few reasons. One, and most simply, you could have no objects with the "Player" tag. Second, it could be that it's because you're doing so in the Awake() method.
You'll find sometimes that certain functions do not work in awake and must be moved to Start() due to the unity life cycle.
Answer by mnarimani · Jun 24, 2017 at 10:06 PM
If the code doesn't find any object with "Player" tag, line 14 will throw the null reference exception, this can be avoided like this:
Player = GameObject.FindGameObjectWithTag("Player");
if(Player != null)
Origin = Player.transform;
Answer by akmccullough · Jun 24, 2017 at 10:18 PM
Wow! What a newbie mistake on my part. The simple tag change to Player totally fixed it. Thank you. Can't believe I missed that. You folks are rock stars for replying so quickly!
We all started somewhere. Don't be too hard on yourself.
Your answer
![](https://koobas.hobune.stream/wayback/20220612124831im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Unity 5 UNet Spawn as Child. 1 Answer
Multiple Cars not working 1 Answer
not all lines of code running c# 0 Answers