【发布时间】:2016-11-05 08:23:18
【问题描述】:
我正在尝试访问在我的脚本中实例化的另一个游戏对象上的脚本,无论我做什么,脚本总是返回 null。
我首先通过这样做来实例化游戏对象。
asteroid = (GameObject)Instantiate(asteroidPrefab);
之后我尝试通过这样做来访问它的脚本:
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 脚本附加到 asteroidPrefab 预制件上,当我实例化它时,它会正确实例化,因为我在屏幕上看到了小行星。仍然当我尝试访问附加到它的 AsteroidHandler 脚本时,它似乎不存在;
我尝试了其他几种访问 AsteroidHandler 的方法,但他们都说它为 null:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent<AsteroidHandler>();
.
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler)) as Asteroid Handler;
我查看了其他几个与我类似的问题,但似乎没有一个答案有帮助。
任何帮助将不胜感激。
【问题讨论】:
-
你确定你的预制件上有脚本
-
检查是否所有东西都附加到预制件上并保存在项目中(不仅仅是层次结构)
标签: c# unity3d nullreferenceexception