So I’m having the Unrestricted MoveType Scrollview (Only Vertical), Inside I’m having the VerticalLayoutGroup filled with buttons. But the problem is that user can scroll into infinity. I want to stop scrolling when the last button is at the bottom of the view. How do I achieve that?
How to stop infinite scrolling in scrollview ?
It’s a little hard, not impossible, what we are going to do, is set the maximum value to the amount of buttons like this…
int buttonSize = 80;
int numberOfButtons = 4;
int mValue = buttonSize*numberOfButtons;
In a scrollview, the content need to put in this GameObject → ScrollView>Viewport>Content.
The content recttransform is changed when you scroll stuff. We can’t let it’s TOP value be higher than 0, so we do this:
public RectTransform cont;
void Update(){
if(cont.offsetMax.y < 0) { //It seems that is checking for less than 0, but the syntax is weird
cont.offsetMax = new Vector2(); //Sets its value back.
cont.offsetMin = new Vector2(); //Sets its value back.
}
}
Now we can’t let the value be higher than the number of buttons, so we do this:
if(cont.offsetMax.y>(numberOfButtons*buttonSize)-buttonSize) { // Checks the values
cont.offsetMax = new Vector2(0,(numberOfButtons*buttonSize)-buttonSize); // Set its value back
cont.offsetMin = new Vector2(); //Depending on what values you set on your scrollview, you might want to change this, but my one didn't need it.
}
Hope this helps 