在TileController脚本中发生drop事件时,我正在尝试使用PlayerController脚本中的方法实例化预制件。
如果我在TileController中使用:
public void OnDrop (PointerEventData eventData){
GameObject instance = Instantiate(Resources.Load("Player", typeof(GameObject))) as GameObject;
}
预制件在场景上正确加载。
但如果我使用:
public void OnDrop (PointerEventData eventData){
player.instantiatePlayer ();
}
然后返回错误:
NullReferenceException: Object reference not set to an instance of an object
我正在使用的PlayerController方法是:
public void instantiatePlayer() {
GameObject instance = Instantiate(Resources.Load("Player", typeof(GameObject))) as GameObject;
}
我认为这很简单,我很遗憾,但我无法确定它是什么。
答案 0 :(得分:0)
您的控制器类有一个名为" player"但它没有设置为任何东西,它是null,这就是你得到NullReferenceException的原因。你做到的第一种方式是正确的。
答案 1 :(得分:0)
当你对彼得的帖子发表评论时。 首先检查Start函数是你的引用“player”等于null。 GetComponent只是尝试获取组件,但如果找不到它将返回null。
如果它不为null那么检查,也许在某些代码中你会在玩家参考下销毁对象。