Hello!
Having some trouble getting the script attached to a newly instantiated gameobject. I’ve used similar code to set the attributes of instantiated bullets without experiencing the same problem.
There are awake and start instructions in the instantiated object’s script (The script I am trying to get). The awake instruction is processed, then the debug informs me that the script is null (Line 18). Then the start functions are processed.
Is it possible that the script attached to this newly instantiated gameobject can’t be retrieved because it hasn’t fully initialised, or because I am trying to change some of the values (that may be in the process of being initialised?
I’ve attached part of the debug below.
Any ideas on fixing this? Thanks for your time.
This is the code I’m using to instantiate the gameObjects
// Place a turret for each element in TurretScriptList
for(int i = 0 ; i < turretScriptList.Count ; i++)
{
// Instantiate and get reference
GameObject turret = (GameObject)Instantiate(turretPrefab2, turretScriptList*.GetTurretPosition(), Quaternion.identity);*
-
if(turret == null)*
-
{*
-
Debug.Log("TurretSceneScript1.PlaceExistingTurrets: Turret is null"); *
-
}*
-
// Get the type of the turret from turretScriptList*
_ string turretType = turretScriptList*.GetTurretType();*_
* // Get the turret’s script*
* TurretGunScript currentTurretScript = (TurretGunScript) turret.GetComponent(“TurretGunScript”);*
* if(currentTurretScript == null)*
* {*
* Debug.Log(“TurretSceneScript1.PlaceExistingTurrets: currentTurretScript is null”); *
* }*
* // Set the turret type on the newly instantiated Turret*
* currentTurretScript.turretType = turretType;*
* // Set the texture appropriate to that type*
* currentTurretScript.SetTurretTexture();*
* }*
[8002-nullreference.png|8002]_
_