我试图访问在我的脚本中实例化的另一个游戏对象上的脚本,无论我做什么,脚本始终返回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");
}
问题是这总是执行null选项.我在AsteroidPrefab预制件上附加了AsteroidHandler脚本,当我实例化它时,它会正确实例化,就像我在屏幕上看到的那样.仍然,当我尝试访问附带的AsteroidHandler脚本时,似乎好像不存在该脚本;
我尝试了几种其他方法来访问AsteroidHandler,但它们都说它为null:
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent<AsteroidHandler>();
.
AsteroidHandler handler = (AsteroidHandler)asteroid.GetComponent(typeof(AsteroidHandler)) as Asteroid Handler;
我看过其他几个与我的问题类似的问题,但似乎没有一个答案对您有帮助.
任何帮助,将不胜感激.
解决方法:
再简单不过了
asteroid = (GameObject)Instantiate(asteroidPrefab);
// add this...
asteroid.name = "Added test item";
运行程序并等待,直到看到“添加的测试项目”
检查,您还看到“小行星处理程序为空”
现在,从字面上看您的继承关系中的场景,并找到名为“添加的测试项”的对象
仔细查看检查器,看看您看到的是什么.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。