Как бы то ни было, я не могу понять смысл событий в моей программе. У меня есть два компонента. Один называется 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;
Привет, да я понял это, но забыл обновить свой ответ. Спасибо хоть! Upvoted. – MattGarnett