unity3d - MRTK 2.4 - ScrollingObjectCollection 不通过脚本更新
问题描述
我在我的场景中创建了一个通知面板,当有事情发生时会显示通知。这些通知只是作为子项添加到的按钮ScrollingObjectCollection
:
我遇到的问题是,在删除一个通知(中间那个)之后,集合没有更新。但是单击UpdateCollection
-Btn 上的检查器将更新集合。我调试了一下,发现它知道删除一个后,只剩下两个通知。
private void DeleteNotification()
{
if (NotifyManager.Instance.RemoveNotificationFromList(Id))
{
Destroy(this.gameObject);
NotifyManager.Instance.ScrollingCollection.UpdateCollection();
}
}
这是 Inspector 中的按钮调用UpdateCollection
的内容ScrollingObjectCollection
,它与我调用的方法相同:
if (GUILayout.Button("Update Collection"))
{
scrollContainer.UpdateCollection();
EditorUtility.SetDirty(scrollContainer);
}
有人知道如何通过代码在运行时更新该集合吗?
我的设置:
- 团结 2019.4.18
- 机读旅行证件 2.4
解决方案
好的,我自己修好了。问题是所有都发生在一帧中,并且ScrollingObjectCollection
没有处于删除通知的状态。所以我在我的 NotifyManager 中创建了另一个方法,在那里我等待帧结束,然后调用UpdateCollection
.
private IEnumerator WaitBeforeUpdateCollection()
{
yield return new WaitForEndOfFrame();
scrollingCollection.UpdateCollection();
}
推荐阅读
- node.js - 如何配置 Node.js 服务器来提供 SVG 文件?
- google-cloud-build - Google Cloud Build - 是否支持多分支管道?
- scala - 无法在线安装 sbt(按照官方指南)
- c# - 如何公开具有动态数据类型的泛型方法?
- swift - “场景在另一个场景的渲染回调中被修改。” 如何修复此错误?
- android - 更改列中项目的顺序
- xcode - Xcode 9.3 如何将现有的单视图应用程序转换为框架?
- django - Django 和 nginx 以及 gunicorn 和 docker compose - 配置 URL
- c# - 任务在运行时被取消,我的程序无法继续运行
- mysql - nginx 504,无法连接mysql