void Awake () { originPos = scroll.transform.position; } scroll.transform.position = originPos; scroll.GetComponent<UIPanel>().clipOffset = Vector2.zero; SpringPanel spring = Panels[i].GetComponent<SpringPanel>(); if (spring != null) { spring.enabled = false; }
scroll就是UIScrollView所在的物体,我发现NGUI的滑动,改变的是scroll的位置position和UIPanel的clipOffset属性,所以理论上将他们恢复到原来的位置,那么就是恢复到滑动前的状态了。
位置是恢复了,但是有时候切换的时候它还在乱自己移动,后来发现是NGUI新加的SpringPanel,这个脚本大概就是设置一个目标点然后溜达过去,把它设置成不可用就行了,注意其实没有滑动过时,这个脚本是没有添加上的。