x


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 AssetsscriptsspawnPickup.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.

more ▼

asked Sep 18, 2010 at 01:56 AM

EndBoss gravatar image

EndBoss
14 6 4 10

(comments are locked)
10|3000 characters needed characters left

1 answer: sort oldest

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();
more ▼

answered Sep 18, 2010 at 02:04 AM

_Petroz gravatar image

_Petroz
4.1k 64 65 98

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

Sep 18, 2010 at 04:22 PM EndBoss
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3009
x812

asked: Sep 18, 2010 at 01:56 AM

Seen: 1988 times

Last Updated: Sep 18, 2010 at 01:56 AM