Change variable of instantiated object from different game Objects

Hi everyone.

I would like to change a variable of an instiantated object.
The thing is, I have different gameObjects and this is kind of messing up the whole thing, all the gameObject instantiated have the same variable

Here are my codes:

On the guns:

function Start () 
{

bullet = Resources.Load("Fight/Ships/ally/bullet");
bullet.GetComponent(bullet_stats).gun = gameObject ; 	
}


function Update ()
{

if( nextBullet <=Time.time)
	{

Instantiate(bullet, transform.position, transform.rotation);
	nextBullet = Time.time + rate;

}

}

The variable gun, in all the bullets, are a single weapon. Not the one that instantiated it.

Thanks a lot in advance!
Cheers

2 Answers

2

public GameObject bullet;

public float fireRange;

public float fireRate;

public float bulletSpeed;

void ShootGun()
if(Time.time > nextFire)
			{
				nextFire = Time.time + fireRate;
				
				var clone = Instantiate(bullet, this.transform.position, this.transform.rotation) as GameObject;
				clone.rigidbody.velocity = transform.TransformDirection(Vector3.forward * bulletSpeed);
			}

I am sorry I work with Java Script :s

What I am particularly interested in is changing the variable of the instantiated object:

→ bullet.GetComponent(bullet_stats).gun = gameObject ;

all the instantiated object have the same “gun” variable, no matters which gun fired it.

Thanks in advance