我试图引用包含一个脚本的网格对象,该脚本包含我的inventorygrid类。我引用了另一个附加到ui摄像头的脚本。
它的分配是这样的:
我试着这样引用它:
public class InventoryController : MonoBehaviour
{
[SerializeField] private InventoryGrid selectedInventoryGrid;
private void Update()
{
if (selectedInventoryGrid = null)
{
Debug.Log("InventoryGrid IS null.");
return;
}
selectedInventoryGrid.GetTileGridPosition(Input.mousePosition);
}
}
但是,当试图运行引用的类和方法时,我得到“对象引用未设置为对象的示例”。我注意到我分配的“选定库存网格”在运行游戏时会取消分配。
2条答案
按热度按时间unftdfkk1#
应该是的
我在没有意识到的情况下将其设置为null。
gorkyyrv2#
你有两个问题。第一个是@developerLewis提到的。
如果你正在检查null,它应该是“==”而不是“=”。
第二个问题是这个字段:
我认为Unity的某些版本有一个bug(或者它一直像这样工作?),如果您的字段是PRIVATE,但已为其分配了[SerializeField]属性,则会删除引用。
解决方案是,您需要将该字段设置为PUBLIC。