问题描述
我正在使用 MRTK 的 GridObjectCollection
脚本来显示多个按钮。我正在通过脚本动态实例化按钮,并将它们作为 GridObjectCollection
游戏对象的子项放置。现在您可以通过 UpdateCollection()
函数更新集合。除以下情况外,一切都按预期工作:
如果我想在同一个 GridObjectCollection
中显示一组不同的按钮,我会销毁集合的所有子项并像以前一样实例化新按钮并调用 UpdateCollection()
函数。但是集合没有正确更新。旧按钮被破坏,新按钮被添加,但位置发生了变化。如果我单击检查器中的 UpdateCollection 按钮,则该集合会正确更新。
为什么 UpdateCollection()
在修改集合内容后没有按预期工作?
解决方法
我刚刚解决了这个问题。如果集合在下一帧中更新,则更新按预期工作。 所以我正在启动一个协程并在那里调用更新函数。
private IEnumerator InvokeUpdateCollection()
{
yield return null;
gridObjectCollection.UpdateCollection();
}