目标:使用ScrollRect强制滚动条向下滚动
我在ScrollRect中保留了一个可扩展的元素列表,每次添加新元素时,我都会尝试自动滚动到RECT的底部。
我以为把ScrollRect的值为零就可以刷新了,但是发现聊天室的新信息滚动条不会到最下面进行展示。
scrollRect.verticalScrollbar.value = 0;
但是它什么也没做,实际上滚动条没有改变它的值。ScrollRect类自行设置滚动条的值。我尝试让他的位置变化归零还是不可以。
scrollRect.verticalNormalizedPosition = 0;
最后找到Canvas的一个更新函数Canvas.ForceUpdateCanvases ();
通过下面的代码,每次发送新消息聊天室窗口会自动更新到最下面。
Canvas.ForceUpdateCanvases ();
messageScrollRect.verticalNormalizedPosition =0f;
Canvas.ForceUpdateCanvases ();
为什么要用两个?
因为第一个Canvas.ForceUpdateCanvases ()是强制更新,更新过后你设置 你想修改的值然后再更新就可以了。