Unity聊天室问题(一)

目标:使用ScrollRect强制滚动条向下滚动
我在ScrollRect中保留了一个可扩展的元素列表,每次添加新元素时,我都会尝试自动滚动到RECT的底部。
我以为把ScrollRect的值为零就可以刷新了,但是发现聊天室的新信息滚动条不会到最下面进行展示。

 scrollRect.verticalScrollbar.value = 0;

但是它什么也没做,实际上滚动条没有改变它的值。ScrollRect类自行设置滚动条的值。我尝试让他的位置变化归零还是不可以。

 scrollRect.verticalNormalizedPosition = 0;

最后找到Canvas的一个更新函数Canvas.ForceUpdateCanvases ();
通过下面的代码,每次发送新消息聊天室窗口会自动更新到最下面。

Canvas.ForceUpdateCanvases ();

messageScrollRect.verticalNormalizedPosition =0f;

Canvas.ForceUpdateCanvases ();

为什么要用两个?
因为第一个Canvas.ForceUpdateCanvases ()是强制更新,更新过后你设置 你想修改的值然后再更新就可以了。

猜你喜欢

转载自blog.csdn.net/qq_45506643/article/details/108182048