NGUI 学习一段时间了,这里总结一下,用于以后查看.

获取组件

在Awake函数里获取组件,然后就可在Start以及其他函数里使用

lbl = GetComponent<UILabel>();

然后就可以操作组件

_lbl.text = "this is a test";

_lbl.color = Color.Red;

使用预设

创建过模型后如果要使用预设,需要实例化(FloatingText是一个组件对象)

ft = Instantiate(ft) as FloatingText;

Object.Instantiate 实例

  static function Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object

  克隆原始物体,位置设置在position,设置旋转在rotation,返回的是克隆后的物体。这实际上在Unity和使用复制(ctrl+D)命令是一样的,并移动到指定的位置。如果一个游戏物体,组件或脚本实例被传入,实例将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。

摄像机的Projection(投影方式)

摄像机的投影方式,有透视投影(perspective)和正交投影(orthographic)两种。

正交投影:投影线垂直于投影面,也叫平行投影.将摄像机设成正交投影,可以看到它变成了一个立方体.

UIToggle

A toggle is a generic component that has two states: on, and off. Toggle can be used to create checkboxes, tabs, radio button groups, and other similar widgets.

UIScrollView

拖动实现有两种实现方法,一是通过panel实现,而是通过拖动Camera实现。

这个组件作为需要拖动的物体的父物体。

UIToggledComponents

  Example script showing how to activate or deactivate MonoBehaviours with a toggle.  

  指定要激活的组件

UIDragScrollView

这个作物拖拽物体的组件,该物体还必须有collider组件

Allows dragging of the specified scroll view by mouse or touch.

法线贴图效果

关键是使用了refraction altas,打开这个altas可以看到,它采用了法线贴图来实现效果。

注意事项:

1.要在panel中勾选Normals选项(原因不明)

2.添加平行光到世界中

3.点光源。

4.给点光源添加animation

只有添加动画才会有光影效果.

UIDragObject

Allows dragging of the specified target object by mouse or touch, optionally limiting it to be within the UIPanel's clipped rectangle.

把要拖拽的物体添加该组件,并添加collider,响应拖拽操作。

LagPosition

/// <summary>

/// Attach to a game object to make its position always lag behind its parent as the parent moves.

/// </summary>

将本组件附加到一个游戏物体上,使得此物体的子物体滞后于父物体的移动。

WindowAutoYaw

/// <summary>

/// Attaching this script to an object will make it turn as it gets closer to left/right edges of the screen.

/// Look at how it's used in Example 6.

/// </summary>

将此脚本附加到对象会使它变的越来越接近左右屏幕的边缘。

WindowDragTilt

/// <summary>

/// Attach this script to a child of a draggable window to make it tilt as it's dragged.

/// Look at how it's used in Example 6.

/// </summary>

将此脚本附加到一个可拖动的窗口,使其拖动时有一定的倾斜角度。

以上几个组件的关系如下

多国语言处理

加载“…\Assets\NGUI\Examples\Resources\Localization.txt“文件,文件是CSV格式保存的,已逗号分隔,类似于下中文件

LanguageSelection

/// <summary>

/// Turns the popup list it's attached to into a language selection list.

/// </summary>

将本组件添加到一个弹出列表框,用于语言的选择。

判断物体是否在视角内

通过渲染的时间来断定是否在视角内,如果被渲染过,那么就在视角内,否则就不在视角内。

 public var isRendering:boolean=false;
 private var lastTime:float=0;
 private var curtTime:float=0;

 function Update()
 {
     isRendering=curtTime!=lastTime?true:false;
     lastTime=curtTime;
 }

 function OnWillRenderObject()
 {
     curtTime=Time.time;
 }

UIWrapContent

/// This script makes it possible for a scroll view to wrap its content, creating endless scroll views.

/// Usage: simply attach this script underneath your scroll view where you would normally place a UIGrid:

可以使得滚动面板循环滚动,只需将scroll View里组件grid换成这个就行了。

NGUI 学习总结的更多相关文章

  1. NGUI学习笔记汇总

    NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...

  2. NGUI 学习笔记实战之二——商城数据绑定(Ndata)

    上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客   NGUI 学习笔记实战——制作商城UI界面  ht ...

  3. NGUI 学习笔记实战——制作商城UI界面

    http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...

  4. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

    依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

  5. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

    创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...

  6. Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击

    创建一个新的Scene,并按 Unity插件之NGUI学习(2)创建UI Root. 准备工作,制作Font.如今Project窗体创建一个Font目录.然后从系统自带字体目录中选择自己须要的字体,我 ...

  7. NGUI学习笔记(一)UILabel介绍

    来个前言: 作为一个U3D程序员,自然要写一写U3D相关的内容了.想来想去还是从UI开始搞起,可能这也是最直观同时也最重要的部分之一了.U3D自带的UI系统,也许略坑,也没有太多介绍的价值,那么从今天 ...

  8. NGUI学习笔记(五):缓动

    在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画.NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需 ...

  9. NGUI学习笔记(一):官方视频学习记录

    学习NGUI一直断断续续的,目前打算做一个总结的笔记. 我使用的是比较老的3.6.0版本. 1.使用NGUI,需要开启“Edit”->“Project Settings”->“Physic ...

随机推荐

  1. ArcGIS API for JavaScript开发初探——HelloMap

    1.前言 在开始ArcGIS API for JavaScript开发之前我们需要了解一些基本的知识: 1.开发工具选什么? 前端技术的开发工具选择是一个仁者见仁智者见智的问题,有人喜欢Hbuilde ...

  2. c语言数组赋值

    int acct_parm[3] = {4, 2, 30};#define RESUME (acct_parm[0])

  3. alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。

    alias 新的命令='原命令 -选项/参数'.举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了.

  4. 将表格table作为execl导出

    有时候的需求是从后台获取数据,然后将数据变成execl,进行导出,下载成execl 解决的方法是 一,比较方便的是 这有个插件 可以直接用 https://www.npmjs.com/package/ ...

  5. MySQL binlog server

    从5.6版本开始,可以利用 mysqlbinlog命令把远程机器的日志备份到本地目录,这样就更加方便快捷的实现一个binlog server. 环境介绍:192.168.56.100是备份服务器,19 ...

  6. 初尝微信小程序3-移动设备的分辨率与rpx

    屏幕尺寸就是实际的物理尺寸. 分辨率(pt),是逻辑分辨率,pt的大小只和屏幕尺寸有关,简单可以理解为长度和视觉单位. 分辨率(px),是物理分辨率,单位是像素点,和屏幕尺寸没有关系. 微信开发者工具 ...

  7. 深入理解React虚拟DOM

    一.什么是虚拟DOM 虚拟DOM可以看做一棵模拟了DOM树的JavaScript对象树.比如: var element = { element: 'ul', props: { id:"uli ...

  8. 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误

    版本不同的原因是,Windows 系统之前安装了JRE 是别的版本的 解决方法,将其卸载,卸载后可以正常使用,不再错误提示.

  9. mysql 5.7 编译安装脚本。

    此脚本尽量运行在centos 服务器上面,用于编译安装mysql 5.7 将此脚本和相应的软件 都放到/usr/local/src 目录下面 由于不能上传附件  所以需要把cmake-3.9.6.ta ...

  10. 第2 章Python 语言基础

    必背必记 1.转义字符   Python 中的字符串还支持转义字符.所谓转义字符是指使用反斜杠“\”对一些特殊字符进行转义. \ 续行符 \n 换行符 \0 空 \t 水平制表符,用于横向跳到下一制表 ...