As it stands I can't seem to make sense of the events in my program. I have two components. One called EnemyMeleeSwitching and one called EnemyAI.
EnemyMeleeSwitching, who's script is contained in the same parent level as EnemyAI at runtime selects a random Weapon(object) from a list and assigns the enemyWeapon object variable as that Weapon.
Now I am under the impression that accessing the EnemyMeleeSwitching component and further the Weapon component from my EnemyAI script should allow me to then access enemyWeapon however I am getting a NullReferenceException.
Does this have something to do with execution order? Is my EnemyAI script trying to access enemyWeapon before it's been assigned?
EnemyMeleeSwitching Code below:
public class EnemyWeaponSwitching : MonoBehaviour
{
public Weapon enemyWeapon;
public Weapon weapon01;
public Weapon weapon02;
private List<Weapon> weapons = new List<Weapon>();
void Start()
{
weapons.Add(weapon01);
weapons.Add(weapon02);
enemyWeapon = weapons[Random.Range(0, weapons.Count)];
foreach (Weapon weapon in weapons)
{
weapon.SetActive(false);
}
enemyWeapon.SetActive(true);
}
}
EnemyAI Code call below:
weapon = (Weapon)gameObject.GetComponent<EnemyWeaponSwitching>().enemyWeapon;