- Home /
pass transform value to another script
This is related to my previous question which I solved another way, but now I started on a new script and trying out a suggestion in my previous question, so now I'm stuck again...
my error
'NullReferenceException: Object reference not set to an instance of an object spawnPickup+SpawnAnother$1+$.MoveNext () (at Assets\scripts\spawnPickup.js:13)'
PickUpManager - empty game object spawnPickup.js
var myPickup : GameObject;
function SpawnAnother(currentTransform: Transform){
yield WaitForSeconds (1);
Instantiate(myPickup, currentTransform.position, currentTransform.rotation);
}
pickup > cube
pickup is an empty game object with a rotate JS on it, and cube is the child, which has a collider , is trigger set
var collectSFX : AudioClip; static var originTransform : Transform;
function OnTriggerEnter (otherCollider : Collider) {
if(otherCollider.gameObject.tag == "player"){
audio.PlayClipAtPoint(collectSFX, gameObject.transform.position);
var score = gameObject.Find("scoreDisplayer").GetComponent(displayScore).AddScore();
var puManager = gameObject.Find("PickUpManager").GetComponent(spawnPickup);
puManager.SpawnAnother(originTransform);
Destroy(gameObject);
}
}
/* static function StoreOrigin(otherTransform : Transform){
originTransform = otherTransform;
Debug.Log(originTransform.transform.position.z);
} */
function start(){
originTransform = gameObject.transform; Debug.Log(originTransform.transform.position.z);
}
So basically I'm trying to store off the original location of the pickup. When it's destroyed I want to instantiate another one at it's orginal location.
I can then go into the level and drop these all over the place.
Answer by _Petroz · Sep 18, 2010 at 02:04 AM
Looks like the problem is that your 'originTransform' variable is storing a reference rather than a copy of the object's transform.
Try creating a copy of the original transform, I don't do javascript but I looked online and I think it should be something like:
originTransform = gameObject.transform.clone();
Hey thanks. I couldn't find anything on clone. Isn't clone just instantiating? I think you gave me an idea though. I never knew about the reference thing. I think to keep it simple I will simply assign the position xyz values into ints and pass those to the spawner.
I will look into arrays as well. thanks
Your answer
Follow this Question
Related Questions
Simultaneous Null Reference Exception and expected value 1 Answer
Variable Assigning with GameObject.Find("") causing NullReferenceException? 0 Answers
Accessing a prefab after instantiating results as null 1 Answer
Networking-multplayer issue 1 Answer
Naming an instantiated gameobject gives nullreferenceexception. 0 Answers