Unity开发NGUI代码实现ScrollView(滚动视图)

下载NGUI包

导入NGUI3.9.1版本package

导入NGUI包

创建MainCameraScript.cs脚本

MainCameraScript.cs

using UnityEngine;
using System.Collections; public class MainCameraScript : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { }
}

创建NGUI根节点的方法

	private GameObject Window{ set; get;}

	void CreateUI()
{
//创建根节点
this.Window = NGUITools.CreateUI(false).gameObject;
}

在Window上添加滚动子视图

	void CreateUI()
{
//创建根节点
this.Window = NGUITools.CreateUI(false).gameObject; //在根节点上创建一个UIScrollView子控件
UIScrollView scrollView = NGUITools.AddChild<UIScrollView>(this.Window); }

在滚动视图上添加Grid表格调整布局

	void CreateUI()
{
//创建根节点
this.Window = NGUITools.CreateUI(false).gameObject; //在根节点上创建一个UIScrollView子控件
UIScrollView scrollView = NGUITools.AddChild<UIScrollView>(this.Window); //在滚动视图上添加UIGrid子控件,来调整布局
UIGrid grid = NGUITools.AddChild<UIGrid>(scrollView.gameObject); //设置grid表格的布局方向
grid.arrangement = UIGrid.Arrangement.Horizontal;
grid.cellWidth = 100.0f;
grid.cellHeight = 100.0f;
grid.animateSmoothly = false;
}

添加创建Label的方法

	/// <summary>
/// 创建一个小Label控件
/// </summary>
/// <returns>The label item.</returns>
UILabel CreateLabelItem(string name,GameObject parent)
{
//创建一个Lalel控件
UILabel label = NGUITools.AddChild<UILabel> (parent); //修改Label的字体及颜色
Font f = (Font)Resources.Load ("Arial", typeof(Font));
label.bitmapFont = NGUITools.AddMissingComponent<UIFont>(label.gameObject);
label.bitmapFont.dynamicFont = f;
label.color = Color.red; //设置Label要显示的文字
label.text = name; //添加滚动ScrollView时要用到的碰撞器和脚本
label.autoResizeBoxCollider = true;
NGUITools.AddMissingComponent<UIDragScrollView> (label.gameObject);
NGUITools.AddMissingComponent<BoxCollider> (label.gameObject); //重新调整碰撞器的大小
label.ResizeCollider (); return label;
}

在Grid上添加10个Label控件

	void CreateUI()
{
//创建根节点
this.Window = NGUITools.CreateUI(false).gameObject; //在根节点上创建一个UIScrollView子控件
UIScrollView scrollView = NGUITools.AddChild<UIScrollView>(this.Window); //在滚动视图上添加UIGrid子控件,来调整布局
UIGrid grid = NGUITools.AddChild<UIGrid>(scrollView.gameObject); //设置grid表格的布局方向
grid.arrangement = UIGrid.Arrangement.Horizontal;
grid.cellWidth = 100.0f;
grid.cellHeight = 100.0f;
grid.animateSmoothly = false; //在Grid表格上添加20个Label对象
for (int i = 0; i < 10; i++)
{
CreateLabelItem (Random.Range (100, 999).ToString(), grid.gameObject);
} //重新排版
grid.Reposition ();
}

整个MainCameraScript.cs的代码如下

using UnityEngine;
using System.Collections; public class MainCameraScript : MonoBehaviour { private GameObject Window{ set; get;} void CreateUI()
{
//创建根节点
this.Window = NGUITools.CreateUI(false).gameObject; //在根节点上创建一个UIScrollView子控件
UIScrollView scrollView = NGUITools.AddChild<UIScrollView>(this.Window); //在滚动视图上添加UIGrid子控件,来调整布局
UIGrid grid = NGUITools.AddChild<UIGrid>(scrollView.gameObject); //设置grid表格的布局方向
grid.arrangement = UIGrid.Arrangement.Horizontal;
grid.cellWidth = 100.0f;
grid.cellHeight = 100.0f;
grid.animateSmoothly = false; //在Grid表格上添加20个Label对象
for (int i = 0; i < 10; i++)
{
CreateLabelItem (Random.Range (100, 999).ToString(), grid.gameObject);
} //重新排版
grid.Reposition ();
} /// <summary>
/// 创建一个小Label控件
/// </summary>
/// <returns>The label item.</returns>
UILabel CreateLabelItem(string name,GameObject parent)
{
//创建一个Lalel控件
UILabel label = NGUITools.AddChild<UILabel> (parent); //修改Label的字体及颜色
Font f = (Font)Resources.Load ("Arial", typeof(Font));
label.bitmapFont = NGUITools.AddMissingComponent<UIFont>(label.gameObject);
label.bitmapFont.dynamicFont = f;
label.color = Color.red; //设置Label要显示的文字
label.text = name; //添加滚动ScrollView时要用到的碰撞器和脚本
label.autoResizeBoxCollider = true;
NGUITools.AddMissingComponent<UIDragScrollView> (label.gameObject);
NGUITools.AddMissingComponent<BoxCollider> (label.gameObject); //重新调整碰撞器的大小
label.ResizeCollider (); return label;
} // Use this for initialization
void Start () { CreateUI ();
} // Update is called once per frame
void Update () { }
}

效果如下

[Unity]Unity开发NGUI代码实现ScrollView(滚动视图)的更多相关文章

  1. [Unity]Unity开发NGUI代码实现ScrollView(放大视图)

    Unity开发NGUI代码实现ScrollView(放大视图) 下载NGUI包 导入NGUI3.9.1版本package 创建MainCameraScript.cs脚本 MainCameraScrip ...

  2. Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  3. 从零開始学android&lt;ScrollView滚动视图.十八.&gt;

    因为手机屏幕的高度有限.所以假设面对组件要显示多组信息的时候,ScrollView视图(滚动视图)能够有效的安排这些组件,浏览时能够自己主动的进行滚屏的操作. android.widget.Scrol ...

  4. ScrollView 滚动视图

    ScrollView 种类: 1.HorizontalScrollView:水平滚动视图 2.ScrollView:垂直滚动视图(常用类) public class MainActivity exte ...

  5. IOS 特定于设备的开发:基于加速计的滚动视图

    倾斜滚轮使用设备的内置加速计来控制在UIScrollView的内容周围移动.当用户调增设备时,材料会相应的下落,他不会把视图定位在屏幕上,而是把内容视图滚动到一个新的偏移位置. 创建这个界面的挑战在于 ...

  6. scrollView滚动(通过代码)

    平时的开发中可能会要求scrollview滚动,一般的方法时通过scrollview.scrollto(0,1000);来实现,但是注意这个方法是在scrollview停止动画之后才能执行的,因为如果 ...

  7. Xamarin iOS教程之进度条和滚动视图

    Xamarin iOS教程之进度条和滚动视图 Xamarin iOS 进度条 进度条可以看到每一项任务现在的状态.例如在下载的应用程序中有进度条,用户可以很方便的看到当前程序下载了多少,还剩下多少.Q ...

  8. OCUI界面设计:滚动视图与分页控件初探

    滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...

  9. 【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件

    简介 马三最近换到了一家新的公司撸码,新的公司 UI 部分采用的是 NGUI 插件,而之前的公司用的一直是 Unity 自带的 UGUI,因此马三利用业余时间学习了一下 NGUI 插件的使用,并把知识 ...

随机推荐

  1. b端商家赋值权限

  2. 设置TabBar分栏控制器上图片的大小问题

    我们都知道,iOS因为屏幕分辨率的问题,UID在交付我们iOS开发人员程序配图的时候,一般是三套图,分别对应三种不同的分辨率,对不同size的屏幕系统会自动使用不同像素的图片,我们只需要在命名时给三套 ...

  3. php五种常用的设计模式

    php 设计模式 1.单例模式 单例模式顾名思义,就是只有一个实例.作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的要点有三个: 一是某个类 ...

  4. java 区分error和exception

    1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...

  5. [Python]网络爬虫(四):Opener与Handler的介绍和实例应用

    在开始后面的内容之前,先来解释一下urllib2中的两个个方法:info and geturl urlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info() ...

  6. ngnix配置文件

    使用nginx最大的好处就是负载均衡. #设定负载均衡的服务器列表    upstream service{        server 10.4.29.174:7477;    } server { ...

  7. java中io对文件操作的简单介绍

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  8. 转:通过ant来批量执行jmeter脚本,并生成报告(附: 生成报告时报“Content is not allowed in prolog”这个错误的解决方案)

    最近在使用jmeter写脚本来进行测试,最终写了很多份脚本,然后,就在想,这么多脚本,我不可能一个一个的手动去点啊,有没有什么办法来批量运行Jmeter脚本呢? 这个时候,自然而然地想到了万能的ant ...

  9. HDU 5723 Abandoned country

    题目说每条边权值都不一样,说明最小生成树是唯一的,不存在最小期望这一说. 然后就是先求出最小生成树,随便确定一个根节点,计算出每个点的子树有多少节点,记为c[x]. 指向x的这条边被统计的次数为c[x ...

  10. meta 常用标签总结

    声明:并非原创 meta元素工有3个可选属性(http-equiv.name.scheme)和一个必选属性(content),content定义与http-equiv或name属性相关的元信息 可选属 ...