Instantiating for Item Generator Not Working?

Dear fellow unity3d users I have a problem with a Item generating script the problem is no item is being made here is my code:

using System.Collections;

public class CommonItemGenerator : MonoBehaviour {

private int WeaponRarity;

private int ConsumableRarity;

private int AmmoRarity;

private float ItemTimer;

public bool HasItemGenerated = false;

private Transform GeneratedItem;

//Item Prefabs
public GameObject Makarov;
public GameObject CannedBeans;
public GameObject CannedPasta;
public GameObject TrailMix;
public GameObject Cola;
public GameObject EnergyDrink;
public GameObject WaterBottle;

private void Update(){
	WeaponRarity = Random.Range(1,11);
	ConsumableRarity = Random.Range(1,3);
	AmmoRarity = Random.Range(1,5);
	if(HasItemGenerated = false){
		GenerateItem();
	}
}

private void GenerateItem(){
	if(WeaponRarity == 1){
		if(!HasItemGenerated){
			HasItemGenerated = true;
			GameObject GenItem = Instantiate(Makarov, Vector3.zero, Quaternion.identity) as GameObject;
			GenItem.transform.parent = gameObject.transform;
			GenItem.transform.localPosition = Vector3.zero;
		}
	}
	else if(ConsumableRarity == 1){
		if(!HasItemGenerated){
			HasItemGenerated = true;
			GameObject GenItem = Instantiate(CannedBeans, Vector3.zero, Quaternion.identity) as GameObject;
			GenItem.transform.parent = gameObject.transform;
			GenItem.transform.localPosition = Vector3.zero;
		}
	}
	else if(AmmoRarity == 1){
		if(!HasItemGenerated){
			GameObject GenItem = Instantiate(Cola, Vector3.zero, Quaternion.identity) as GameObject;
			GenItem.transform.parent = gameObject.transform;
			GenItem.transform.localPosition = Vector3.zero;
		}
	}
	else{
		if(!HasItemGenerated){
			HasItemGenerated = true;
			GameObject GenItem = Instantiate(WaterBottle, Vector3.zero, Quaternion.identity) as GameObject;
			GenItem.transform.parent = gameObject.transform;
			GenItem.transform.localPosition = Vector3.zero;
		}
	}
}

}

1 Answer

1

Line 26. the “=” operator will set HasItemGenerated to false every time. You want to use “==” to compare the two values.