Unity NGUI系统使用ScrollRects为您的游戏添加可滚动元素,但是这个滚动条目缺乏限制滚动超过某个点的能力,这是我决定实施的。
我有一个想法:让我们检查ScrollRect.verticalNormalizedPosition
是否为1,如果是,则将其设置为1(1是ScrollRect的顶部。)
public class scrollrectclamper: MonoBehaviour {
ScrollRect SR;
void Start () {
SR= gameObject.GetComponent<ScrollRect> ();
}
void Update(){
if (SR.verticalNormalizedPosition == 1) {
SR.verticalNormalizedPosition = 1; // WHY
}
}
}
这限制了滚动,即使我甚至不希望== 1
使用float
,这种类型因其不精确而臭名昭着。
verticalNormalizedPosition
的说明:
垂直滚动位置为0到1之间的值,0位于底部。
但是如果scrollrect位于顶部或更高位置,那么函数只会被破坏,只返回浮点数1.0,如果它位于其他位置,则返回0.0。
答案 0 :(得分:0)
因为set
的{{1}}子句触发了一个主动改变滚动矩形位置的方法。只要你没有弄乱价值,它就会在veritcalNormalizedPosition
和0
以及1
之间进行限制,变量不会触发任何行为。但是只要你get
变量,你就会告诉set
引擎,&#34;我希望它在这里。&#34;因此,一种方法被解雇了。