Unity中ScrollRect锁定元素详述(一)

来源:互联网 发布:做班服的软件手机 编辑:程序博客网 时间:2024/05/16 12:37

0. 背景

需求是在竖向屏幕上,左右滑动以选择角色。若角色处在图1.a)图的非完整角色位置,则要求找到最近的角色卡片,并且自动滑动定位,如图1.b)所示。


锁定元素
图1.a) scrollRect处于非完整角色位置,b) 自动滑动锁定最近角色

1. 制作步骤

1.1 Unity版本

需求制作使用Unity5UGUI的新GUI组建(UGUI自Unity4.6版本出现的)。

1.2 新建Canvas,Panel等UI

a). 在菜单栏GameObject/UI/Canvas,新建Canvas,命名为CharCanvas,如图2。


新建Canvas
图2. 新建Canvas

b). 同理,在CharCanvas中新建一个Create/UI/Panel中新建一个panel,作为CharCanvas子物体,并命名为ChoosePanel,如图3,在其Image组建中,选择Coloralpha通道为0(使透明)。


新建panel
图3. 新建panel

这样在Hierarchy中就有CharCanvasEventSystem,如图4。


Hierarchy
图4. 新建CanvasPanel后的Hierarchy

c). 在ChoosePanel新添一个ScrollRect组件,如图5:


scrllRect
图5. 新添ScrollRect组件

注. 在ScrollRect组建中设置去掉Vertical的选择框,选择MoveMentTypeUnrestricted

d). 在ChoosePanel再新建一个panel,作为ChoosePanel的子物体,命名为Content,并将此Content拖到c)步的ScrollRect组建的Content中,如图6所示:


<code>Content</code>加入<code>ScrollRect</code>
图6 Content加入ScrollRect

e). 在Content中添加Image, Button, 自定义的Prefabs等作为Content的子物体。这些就是你将来滑动的角色卡片。为了简化,这是使用UI/Image作为角色卡片的元素。添加好后,并且以x坐标520距离(同一高度)并列水平放置,Hierarchy的层级目录和Scence如图7所示:


<code>Hierarchy</code>的层级目录和<code>Scence</code>
图7.Hierarchy的层级目录和Scence

现在开启游戏,就可以在ChoosePanel上左右滑动了。现在的问题是,它并不能定位在某个角色卡片上,接下来下一篇博客就讲述使用C#脚本实现上述功能。

1 0