当我使用按钮的“On Click()”组件时,我试图获取数组的大小。 void运行(打印我的Debug.Log),但它返回我的数组为0.当我使用Input.GetKeyDown在同一个实例中读取计数大小时,它返回正确的值。但是当我尝试使用相同的功能KeyDown运行时抛出'点击()'组件它返回0;Unity OnClick()
因此,换句话说,我的 '论点击' 运行 'useItems()'
useItems作为跟随
private int getItems()
{
return itemsInInv.Count;
}
public void useItem()
{
Debug.Log(getItems());
//sortItems();
}
当我运行像这样
if (Input.GetKeyDown(KeyCode.T))
{
useItem();
}
useItems
它返回值完美,但是当我从我的对象上的“点击”组件引用它时,它会返回0作为“计数”大小。
解释当我尝试从列表与UI元素在单击组件删除游戏对象的问题
的另一种方式,那火不会从列表中删除的对象的功能。它只会使用Destroy()删除显示的对象。然后在List.Count上返回0。
但如果我用一个输入做同样的代码来删除对象使用'EventSystem.current.currentSelectedGameObject'的函数,它将工作100%完美。为什么不能在OnClick的触发函数上使用相同的代码?
if (Input.GetKeyDown(KeyCode.Z))
{
var obj = EventSystem.current.currentSelectedGameObject;
Destroy(obj);
itemsInInv.Remove(obj.gameObject);
Debug.Log(itemsInInv.Count);
Debug.Log("You used a " + obj.name);
sortItems();
}
^That's the code。如果我点击一个对象后按'Z',就可以正常工作。但是,如果我直接从被触发的函数运行该代码,它将在list.count上返回0。
你能张贴的OnClick在督察的屏幕截图? –