system
1
I’ve been on working on instantiating 10 boxes and giving them some properties. They all get the same properties for now but it i want to be able to give them different props in the future. The code worked until I put it in #pragma strict mode… Now it says there is a Nullreferenceexeption when i ask for the obstakel.
for (var i : int = 0;i < 10; i++)
{
obstakel = Instantiate (obstakelPrefab, Vector3((i * space)+obstakelOffset, 0, 0), Quaternion.identity) as GameObject;
var tempScript:Obstakel;
tempScript = obstakel.GetComponent(Obstakel) as Obstakel;
tempScript.SetObstakel(trigger,snelheid);
}
Any ideas on what could solve my problems are very welcome!
I would assume that obstaklePrefab is not of type GameObject.
By the way, in Unity 3.4 you can just write this:
var obstakelPrefab : GameObject;
function Start () {
for (var i = 0; i < 10; i++)
{
obstakel = Instantiate (obstakelPrefab, Vector3((i * space)+obstakelOffset, 0, 0), Quaternion.identity);
var tempScript = obstakel.GetComponent(Obstakel);
tempScript.SetObstakel(trigger, snelheid);
}
}
Instantiate returns the type of the prefab being instantiated (instead of Object as before), and GetComponent returns the type of the component (instead of Component as before).
Actually you can shorten it:
obstakel = Instantiate (obstakelPrefab, Vector3((i * space)+obstakelOffset, 0, 0), Quaternion.identity);
obstakel.GetComponent(Obstakel).SetObstakel(trigger, snelheid);
Or even more:
Instantiate (obstakelPrefab, Vector3((i * space)+obstakelOffset, 0, 0), Quaternion.identity).GetComponent(Obstakel).SetObstakel(trigger, snelheid);