就目前而言,我似乎无法理解程序中的事件。我有两个组件。一呼EnemyMeleeSwitching
一呼EnemyAI
。
EnemyMeleeSwitching
,谁的脚本包含在与运行时相同的父级别中,从列表中EnemyAI
选择一个随机Weapon
(对象)并将enemyWeapon
对象变量分配为那个Weapon
。
现在我的印象是访问该EnemyMeleeSwitching
组件并Weapon
从我的EnemyAI
脚本中进一步访问该组件应该允许我然后访问enemyWeapon
但是我得到一个NullReferenceException
.
这与执行顺序有关吗?我的脚本是否在分配之前EnemyAI
尝试访问?enemyWeapon
EnemyMeleeSwitching
下面的代码:
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
代码调用如下:
weapon = (Weapon)gameObject.GetComponent<EnemyWeaponSwitching>().enemyWeapon;