哎,本来是研究UGUI的,不过换了公司后又变成了NGUI,现在搅的有点脑袋疼,不过仔细研究一下,发现还是有些共同之处可以借鉴学习的
现在来说说多重滑动窗口,这个就是几个滑动组件拼起来,在滑动其中一层时,其他几层也会跟着滑动,每个滑动组件的滑动速度又不一样,可以发现有种交错感,感觉上应该蛮高大上的,那现在就来做做看
先建一个背景层,这个不滑动的
给背景层加上NGUI的texture组件
然后在新建个空物体准备制作第一个滑动层
给这个空物体上加上以下组件
记得把Rigibody组件中的Use Gravity的勾去掉,勾上Is Kinematic
然后再在scroll0下再建一个子物体
给他加上下面的组件
再在Grid下建两个子物体作为滑动背景1和滑动背景2
并加上以下组件
记得把UI Texture组件上的size记得设置一下,UI Drag Scroll View 组件上的Scroll View中拖入scroll0,
bg1和bg2都是这样设置
由于我不知道怎么在不是呀滑动条组件的情况下获取当前滑动的数值,所以只能再建一个不显现出来的滑动条,由滑动条去获取滑动层的滑动数值,再另一写一个脚本去获取滑动条上的数值去控制其他滑动层的滑动
记得在scroll0中的scroll bars中拖入建好的滑动条
这样第一个滑动层就完成了
后面几个也照这样子来做
然后调整其中一滑动层Grid下的bg1和bg2的碰撞盒size,我调整的是scroll1的,都调整成如下图
现在可以分层看一下
背景层
加第一滑动层
加第二滑动层
加第三滑动层
加第四滑动层
由于已经调整了scroll1层里的碰撞盒,所以,现在运行能滑动的只有scroll1,其他的滑动不了,所以需要另写一个脚本来控制其他滑动层的滑动
``
using UnityEngine;
using System.Collections;
public class DFWinActivityFbControlScrollBar : MonoBehaviour
{
// Use this for initialization
public GameObject Scrollbar0,Scrollbar1, Scrollbar2, Scrollbar3,Scrollview;
[Tooltip("根据scroll1的滑动速率除以这个数值的结果分别对应就是scroll0,scroll2,scroll3的滑动速率,数值越大,滑动的越慢,Scrollview为那个可以手动滑动到滑动层")]
public float scroll_rate0,scroll_rate1, scroll_rate2;
private UIScrollBar bar0,bar1, bar2, bar3;
private UIScrollView view;
void Start () {
bar0 = Scrollbar0.GetComponent<UIScrollBar>();
bar1 = Scrollbar1.GetComponent<UIScrollBar>();
bar2 = Scrollbar2.GetComponent<UIScrollBar>();
bar3 = Scrollbar3.GetComponent<UIScrollBar>();
view = Scrollview.GetComponent<UIScrollView>();
if (scroll_rate0 == null || scroll_rate1 == null || scroll_rate2 == null)
{
Debug.LogError("scroll_rate is null!");
}
view.onDragStarted += onDragStarted;
view.onDragFinished += onDragFinished;
}
// Update is called once per frame
void Update () {
{
bar0.value = bar1.value / scroll_rate0;
bar2.value = bar1.value / scroll_rate1;
bar3.value = bar1.value / scroll_rate2;
}
}
}
``
新建一个空物体,将这个脚本挂到其上
现在你再滑动试试,就会发现其他层也会跟着动起来了,并且滑动的速度还不一样,有一种交错感,是不是很神奇啊?(其实感觉也就那样<( ̄3 ̄)> !)
还可以给上面加上按钮,可以让美术把一些背景图扣下来做成按钮图片,再贴到背景图的原来位置,可以做出很好的滑动按钮窗口
记住按钮的层级一定要高于scroll窗口的层级,不然点击不到按钮,同时要记住给每个按钮加上
这个组件,不然按钮按住拖动时,滑动窗口不会跟着滑动,加了上面这个组件后,你点击按钮就触发按钮的功能,按住按钮再拖动就会滑动窗口