起因
用ugui的scrollview做了一个游戏内信息提醒列表。然后想在每次出现新信息时,自动弹出列表,并且内容滚到底端。
思考与工作
弹出弹回效果就是修改RectTransform的anchoredPosition。它是异步的动画,不想放update,不想用协程,可以用DoTween等动画插件的方法,例如DoTween的DOAnchorPosX。还有要保留初始值RectTransform的sizeDelta用于恢复原位。
至于scrollview滚动效果,我本来以为是修改scrollbar的值就可以,然而它不像web前端开发里一样,浏览器滚动条和内容高度双向绑定的?。然后在运行游戏时看了下滚动时有什么面板值发生了变化,发现是viewport的content的PosY在改变,而且滚动到底部时它的值等于HDelta。那么实现效果代码就是修改RectTransform的anchoredPosition等于RectTransform的rect.height。