Unity - 实例化对象上的 GetComponent 返回 Null
Unity - GetComponent on Instantiated Object returning Null
我正在尝试访问在我的脚本中实例化的另一个游戏对象上的脚本,无论我做什么,脚本总是 returns 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,但他们都说它是空的:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent<AsteroidHandler>();
.
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler)) as Asteroid Handler;
我已经查看了其他几个与我类似的问题,但 none 的答案似乎有帮助。
如有任何帮助,我们将不胜感激。
再简单不过了,
添加此代码
asteroid = (GameObject)Instantiate(asteroidPrefab);
// add this...
asteroid.name = "Added test item";
运行 程序,等到看到 "Added test item"
检查一下,您是否还看到 "Asteroid Handler is Null"
现在,在您的 Heirarchy 中查找场景,找到名为 Added test item
的对象
仔细看Inspector,看你所见。
我正在尝试访问在我的脚本中实例化的另一个游戏对象上的脚本,无论我做什么,脚本总是 returns 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,但他们都说它是空的:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent<AsteroidHandler>();
.
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler)) as Asteroid Handler;
我已经查看了其他几个与我类似的问题,但 none 的答案似乎有帮助。
如有任何帮助,我们将不胜感激。
再简单不过了,
添加此代码
asteroid = (GameObject)Instantiate(asteroidPrefab);
// add this...
asteroid.name = "Added test item";
运行 程序,等到看到 "Added test item"
检查一下,您是否还看到 "Asteroid Handler is Null"
现在,在您的 Heirarchy 中查找场景,找到名为 Added test item
的对象仔细看Inspector,看你所见。