Я пытаюсь получить доступ к скрипту в другом игровом объекте, который был создан в моем скрипте, и независимо от того, что я делаю, скрипт всегда возвращает null.Unity - GetComponent на возвращаемом объекте Возвращает Null
Сначала я создаю объект игры, делая это.
asteroid = (GameObject)Instantiate(asteroidPrefab);
после этого я стараюсь acessing свой сценарий, делая это:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler));
Чтобы проверить, был ли обработчик установлен должным образом, я сделал это:
if(handler == null){
Debug.Log("Asteroid Handler is Null");
}else{
Debug.Log("Asteroid Handler was setup properly");
}
Проблема заключается в всегда имеет нулевой вариант. У меня есть сценарий AsteroidHandler, прикрепленный к prefab asteroidPrefab, и когда я запускаю его, он запускается правильно, так как я вижу астероид на экране. Тем не менее, когда я пытаюсь получить доступ к скрипту AsteroidHandler, который привязан к нему, он, похоже, действует так, как будто его нет;
Я попробовал несколько других методов, чтобы получить доступ к AsteroidHandler, но все они говорят, что его нуль:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent<AsteroidHandler>();
.
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler)) as Asteroid Handler;
Я рассмотрел пару других вопросов, подобных моим, но ни один из ответов, похоже, не помогает.
Любая помощь будет оценена по достоинству.
У вас есть сценарий на сборке –
проверьте, все ли прикреплено к сборнику и оно сохраняется в проекте (не только в иерархии) – Bijan