Scroll Rect手动滚动脚本Unity C#

MBS*_*MBS 1 c# scrollbar scrollview unity-game-engine

我想为Unity制作一个C#脚本,当我按下"向上"键时滚动视图向上滚动,当我按下"向下"键时向下滚动.

Uma*_*r M 11

简单地使用

ScrollRect.horizontalNormalizedPosition // value range (0 to 1)
Run Code Online (Sandbox Code Playgroud)

要么

ScrollRect.verticalNormalizedPosition // value range (0 to 1)
Run Code Online (Sandbox Code Playgroud)

lerp在按钮单击事件处理程序上相应地尝试这些值,用于向上和向下按钮.

或者你可以看看脚本HorizontalScrollSnap.cs,并VerticalScrollSnap.csUnityUI,一些推广

希望这可以帮助


Joe*_*out 5

其他答案似乎不完整或过于复杂,所以这就是我的做法。假设scroll是您想要滚动的方向,speed是控制滚动速度(以内容单位/秒为单位)的属性,并且scrollRect是对 ScrollRect 组件的引用:

        if (scroll != 0) {
            float contentHeight = scrollRect.content.sizeDelta.y;
            float contentShift = speed * scroll * Time.deltaTime;
            scrollRect.verticalNormalizedPosition += contentShift / contentHeight;
        }
Run Code Online (Sandbox Code Playgroud)

这应该针对任何内容大小移动适当的量,并正确地导致顶部和底部的弹性反弹(如果您的 ScrollRect 已为此配置)。