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. HTML+CSS D07 边框、div

    1.边框(border) 常用表达 border-width px thin 定义细的边框. medium 默认.定义中等的边框. thick 定义粗的边框. length 允许您自定义边框的宽度. ...

  2. linux下环境变量PS1设置

    PS1变量中提示符各项含义:   \d :代表日期,格式为weekday month date,例如:Wed Dec 12 \H :完整的主机名称.例如:hostname是debian.linux \ ...

  3. C#,js数据排序及其操作

    List<int> listint=new List<int>{2,1,7,3,8,5,4,6};listint.Sort((x, y) => x - y); var a ...

  4. P图

    照片名称:调出照片柔和的蓝黄色-简单方法,1.打开原图素材,按Ctrl + J把背景图层复制一层,点通道面板,选择蓝色通道,图像 > 应用图像,图层为背景,混合为正片叠底,不透明度50%,反相打 ...

  5. hdu_2255_奔小康赚大钱(KM带权二分匹配板子)

    题目连接:hdu_2255_奔小康赚大钱 存个板子 /* 其实在求最大 最小的时候只要用一个模板就行了, 把边的权值去相反数即可得到另外一个.求结果的时候再去 相反数即可,最大最小有一些地方不同.. ...

  6. HDU 1934 树状数组 也可以用线段树

    http://acm.hdu.edu.cn/showproblem.php?pid=1394 或者是我自己挂的专题http://acm.hust.edu.cn/vjudge/contest/view. ...

  7. Android编程之SparseArray<E>详解

    最近编程时,发现一个针对HashMap<Integer, E>的一个提示: 翻译过来就是:用SparseArray<E>来代替会有更好性能.那我们就来看看源码中SparseAr ...

  8. C# 经典入门11章,比较

    1类型比较 所有的类懂从System.Object中继承了GetType()方法,这个方法和typeof()运算符一起使用,可以确定对象的类型.例如: if(myObj.GetType()==type ...

  9. zf-关于分页必写的代码

    1 存储过程 ALTER PROCEDURE [dbo].[getStatForXXGKWeb] ), ), ), @page int, -- 必写的 @pageRows int,-- 必写的 @al ...

  10. How to install / setup /upgrade PHP 5.5.x on Ubuntu 12.04 LTS

    原文:http://www.dev-metal.com/how-to-setup-latest-version-of-php-5-5-on-ubuntu-12-04-lts/ 最近遇到了要在ubunt ...