Unity NGUI制作scroll view

unity版本:4.5 NGUI版本:3.6.5

  参考链接:http://blog.csdn.net/monzart7an/article/details/23878505,作者:CSDN 冬菊子

         http://blog.csdn.net/unity3d_xyz/article/details/22989401,作者:CSDN inspironx

1、创建背景:

  这部分比较简单,先创建一个用来展示scroll view的panel,在panel下创建一个空对象,空对象下面创建一个表示背景的sprite即可,空对象也可以不创建,用来组织结构看起来更清晰罢了,背景图片也可以不要,看个人需要:

  

2、UIGrid组织scroll view中内容:

  创建一个panel,用来确定scroll view显示区域,在该sprite下创建一个空对象,命名为UIGrid,这个是用来组织内容顺序的,在UIGrid下面创建在scroll view中要显示的内容,这里的内容用sprite为例,也可以是按钮、文字之类的,创建一个后,直接复制,不必调整sprite的位置;

  可以看到场景中的sprite是重叠的,这时候需要为UIGrid添加Grid.cs脚本让UIGrid对象能够组织显示内容:

  

  可以试运行,如果每一项之间的距离太大,可以调节Grid.cs脚本中的Cell Widht和Cell Height数值;

  UIGrid各项设置:

    Arrangement:表格的显示方向

    Sorting:对表格内的内容进行排序,Alphabetic(以字母顺序排序),Horizontal(水平方向进行排序),Vettical(垂直方向进行排序),Custom(自定义的排序)

    Cell Widht:单个显示的宽度

    Cell Height:单个显示的高度

3、实现鼠标点击可以移动scroll view中内容:

  为Panel添加脚本:UISceollView.cs并设置UIPanel组件里的选项:

  

  Clipping设为Soft Clip,设置size为scroll view内容的显示区域;

  UIPanel各项设置:

    Clipping:面板剪切,分为None(无剪切效果),Soft Clip(软剪切,有边缘模糊效果),Alpha Clip(硬剪切,边缘锋利)

    Constrain But Don‘t Clip(显示所有内容,但是是剪切区域存在)

    Advanced Options:高级选项

    Render Q:面板里所有图片的渲染质量,Automatic(自动适应),Normal(正常),Explicit(用户指定)

    Normals:法线贴图

    Cull:如果用鼠标手动组件则剔除组件

    Visible:面板是否在可视范围内

    Offset:通过位置偏离锚点

    Static:如果是没移动的组件,也进行代码检测,一般是用于ScrollView

    Panel Tool:是否显示面板工具

    Show Draw Calls:显示渲染的详细信息

  运行可以看到内容已经可以按序显示,但是移动鼠标点击时scroll view里面的内容无法根据鼠标的动作来移动,需要为UIGrid下的sprite添加组件;

4、为UIGrid下的sprite添加根据鼠标动作来移动需要的组件:

  需要添加脚本:UIDragScrollView.cs

  需要添加组件:Box Collider;

  Box Collider大小一般和UIGrid中的Cell Width和Cell Height保持一致;

  试运行,就可以看到当鼠标至于Pnael区域里面时,滚动鼠标滑轮,sprite内容会切换显示;

  

时间: 2024-08-04 10:28:55

Unity NGUI制作scroll view的相关文章

NGUI的Scroll View的制作

此为重点: 首先建立一个sprite作为背景,然后建立一个Scroll View, 然后在Scroll View里建立一个Grid 看一下Grid的属性,看到Arrangement是表示排列方式,Sorting也是排序方式,当随意拖动里面的cell 的时候会以你选的方式排序,看Pivot这个是指轴的位置,现在是在中心看图Scenc里面的坐标就知道了.然后看HIde Inactive这个属性目前我所了解的实现是拖动里面的cell后可以随便移动你所拖动的cell到任何位置,若果勾选了上面或者下面的那

4.NGUI Scroll View,Grid(滑动窗口)

(1)     创建一个Scroll View(NGUI – Create – Scroll View) (2)     在Scroll 下新建一个Grid(主要用来排序,NGUI – Create - Grid) (3)     在Grid下添加一个Sprite,并且添加UIDrag Scroll View组件和Box Collider(NGUI – Attach - BoxCollider). (4)     复制若干个Sprite.点击Grid部件右边的小齿轮,点击Execute刷新排序.

NGUI 3.5教程(九)Scroll view - 制作【商店】和【背包】

向原创致敬http://blog.csdn.net/chenggong2dm/article/details/41043155 写在前面:     最近太忙,好久没有更新教程了,请大家原谅.本文将用NGUI,一步步实现[商店]和[背包]界面.由于它们的逻辑大同小异.所以这里仅以[背包]为例. 这篇文件和前八篇文章,基本涵盖了NGUI的大多数常用用法:并且,将来的趋势很可能是官方UI逐渐替代NGUI,所以,这篇教程是NGUI 3.x系列教程的最后一篇. 欢迎大家纠错.拍砖!原创很辛苦,如有转载,请

关于Unity中stretch的分开使用、预制体、Scroll View的UI节点

一.上次讲的菊花的四个花瓣,只讲了四个花瓣和在一起的时候的作用,现在是分开的菊花的四个花瓣的作用 1.创建一个Canvas2.对Canvas进行初始化3.创建一个Image的UI节点作为Canvas的子节点,名字叫bg.4.再创建一个GameObject的空节点作为Canvas的子节点.5.在GameObject下面创建一个叫icon的Image类型的UI子节点6.把icon的颜色改为红色便于观察,大小改为300X300点击左上角的stretch,图案选择最右下角的四个花瓣对应四个角的状态,7.

NGUI Scroll View

NGUI版本: 3.5.6b 1  新建立一个Scene场景 2  拖入一个Contorl-Backgound到Scene中,微调,作为背景使用 3  鼠标在场景中右键点击Create-->Scroll View (调整的时候,注意不要调整的是UIPanel) 4  创建一个Sprite,或者快捷键Alt+Shift+S 并且将这个Sprite拖放到Scroll View 下(在Hierarchy中),Depth为0 拖动Sprite的时候,Sprite会被Scroll View的边缘剪辑一部分

unity3d游戏开发之讲解如何使用NGUI制作表单

前几天用NGUI制作了个表单(效果如下图所示),现如今把过程给大家分享一下,具体是参照NGUI自带的第七个Demo制作的,大家可以仔细看看Example 7 - Scroll View (Panel). 1.总体上就是用了Scroll View+Scroll Bar来制作,item对象我用的是button,这样是为了可以点击或者是更方便的处理一些其它事情.至于NGUI的使用这里就不详细说了,大家可以网上查找一些NGUI的教程文档看看. 2.点击对象出现被选中现象的颜色变化,这里是直接改变的UIB

ngui3.5.7 版本Scroll View实现方法

现在网上的教材都是老版本的,现在的版本并没有Drag Panel Contents脚本,所以我对着现在的DEMO琢磨出了实现方法 第一,创建NGUI ui,其他组件不必创建,我只要NGUI这个摄影机,将这个NGUI设置为2D层,下面子组件都属于2D层 创建Scroll View,之后在下面创建Grid把他里面的脚本去掉,添加UICenterOnChild这个脚本,之后在Grid下面创建你要用的组件,在这些组件上添加UIDrag Scroll View和UICenter On Click 还有Bo

NGUI制作字体的三种方法

主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 2.BMFont使用方法 http://momowing.diandian.com/post/2013-01-24/40046239211 首先打开Font Settings,选择要制作的字体.可以从Font列表中选择一种字体,也可以通过Add font files导入一个t

Unity NGUI UIPanel下对粒子的剪裁

使用 unity 做游戏开发时,有时需要在scroll view下使用粒子,但粒子是不会被 UIPanel 所裁剪的,本人提供了脚本 ParticleSystemClipper,用来处理这种情况: using System; using UnityEngine; [RequireComponent(typeof(UIPanel))] public class ParticleSystemClipper : MonoBehaviour { const string ShaderName = "Bl