MRTK 2.4 - ScrollingObjectCollection 不通过脚本更新

MRTK 2.4 - ScrollingObjectCollection not updating via script

我在我的场景中创建了一个通知面板,它会在发生某些事情时显示通知。这些通知只是作为子项添加到 ScrollingObjectCollection:
的按钮

我遇到的问题是,在删除一个通知(中间那个)后,集合没有更新。但是在检查器中单击 UpdateCollection-Btn 将更新集合。调试了一下,发现是知道删除一个后,只剩下两个notifications

private void DeleteNotification()
{
    if (NotifyManager.Instance.RemoveNotificationFromList(Id))
    {
        Destroy(this.gameObject);
        NotifyManager.Instance.ScrollingCollection.UpdateCollection();
    }
}



这就是 Inspector 中 ScrollingObjectCollection 中的按钮 UpdateCollection 所调用的内容以及我正在调用的相同方法:

if (GUILayout.Button("Update Collection"))
{
    scrollContainer.UpdateCollection();
    EditorUtility.SetDirty(scrollContainer);
}

有人知道如何通过代码在运行时更新该集合吗?

我的设置:

好的,我自己修好了。问题是所有的事情都发生在一帧内,而 ScrollingObjectCollection 并没有处于通知被删除的状态。所以我在我的 NotifyManager 中创建了另一个方法,我等待帧结束然后调用 UpdateCollection.

private IEnumerator WaitBeforeUpdateCollection()
{
    yield return new WaitForEndOfFrame();
    scrollingCollection.UpdateCollection();
}