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. 【Python初学】深copy&浅copy

    在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用. 1. copy.copy 浅拷贝 只拷贝父对象 ...

  2. 在win7 64bit系统安装QC软件

    当本机系统不再QC软件支持的系统上,可以在setup右键选择兼容性选择能支持安装的系统, 在JBOSS页面,选择该服务器,用户名输入本机的用户名和密码,如果没有配置域输入计算机名. 如果没有装IIS, ...

  3. dl以及dt,dd,以及table的tr,th,td最清楚分析

    1,定义:<dl> <dt> <dd>是一组合标签,使用了dt dd最外层就必须使用dl包裹,此组合标签我们也又叫表格标签,与table表格类似组合标签,故名我们也 ...

  4. 8633 回文划分(dp)

    8633 回文划分 该题有题解 时间限制:1000MS  内存限制:1000K提交次数:169 通过次数:63 题型: 编程题   语言: G++;GCC Description 我们说一个字符串是回 ...

  5. hdu 3345 War Chess

    War Chess Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

  6. Effective C++笔记之Item49【了解new-handler的行为】

    //---------------------------------------------------------// //------------------------------------ ...

  7. 【转】js/jquery中刷新iframe方法(兼容主流)

    一.js实现刷新两种方式: 1.//方法1 2.document.getElementById('FrameID').contentWindow.location.reload(true); 3.// ...

  8. 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】

    阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...

  9. call_grant_exec.sql

    set echo off feedback off verify off pagesize 0 linesize 120 define v_grantee                 = & ...

  10. hibernate 使用sql 查询(setResultTransformer)

    使用方法举例如下: public List findByOid(Object oid) {  log.debug("finding all WatershedAnalyse instance ...