我只是想在每次创建新文本对象时将我的scrollview对象的滚动条的值设置为0。这样,最新的对象将始终保持在底部而不需要向下滚动(例如,考虑视频游戏的聊天)。我的问题是,由于某种原因程序将值设置为0,然后创建文本对象,所以它将第二个最新的对象保持在滚动视图的底部。Unity 2D将滚动条的值设置为0
我的代码:
//Creates the Text objects
private GameObject GenerateTextObject(string content)
{
//Creates the Text objects
GameObject messagePrefab = Instantiate(MessagePrefab);
Text textComponent = messagePrefab.GetComponent<Text>();
//Sets the content of the text and parent
textComponent.text = content;
messagePrefab.transform.SetParent(ContentPanel.transform, false);
ScrollbarVertical.value = 0;
return messagePrefab;
}
在代码中,我设定值在函数的结束,但在此之前仍然设置滚动条的值为0(正常移动滚动视图的底部)对象被创建。
https://gyazo.com/897982521f13d7792ec26540490a40c0 在Gyazo图片中,您可以看到它如何不完全滚动。
我曾尝试使用协程和waitForEndFrame以及waitforsconds(1),但似乎没有工作。
编辑:加载Unity并向滚动视图发送新消息时,我看到滚动条一直向下移动,然后迅速向上移动,只是隐藏了新的文本对象。
将ScrollRect的'elastic'更改为'0',然后执行'ScrollbarVertical.value = 0;'。这只是一个想法。不知道这是否会起作用。 – Programmer
不...我试过用ScrollRect选项来调整,没有任何东西可以做到。 :(,非常感谢帮助再次程序员 –
经过大量的思考和搞乱不同的“修复”后,我想出了一个解决这个问题的解决方法。再一次,谢谢你试图帮助:) –