浅谈NGUI的NGUITools类

转载 2015年07月09日 19:33:22

转自:http://lizhiwei.me/?p=85

最近正在使用NGUI,发现这确实是个简单使用却功能强大的工具,用的过程中发现NGUI封装了许多有用的小工具类,比如今天想谈的NGUITools类。该类封装了诸如播放音效、获取组件等等方法。下面一一谈谈自己的浅见,主要就是对功能做了下说明,今后项目中如果遇到,再补充更多的实用体验吧,也希望大家多多拍砖。

static public float soundVolume

该属性是全局音效播放音量,按照文档说是用于NGUITools.PlaySound(),那也就意味着我的游戏如果用NGUITools.PlaySound()管理游戏中的音效,同时也可以用于产品音效控制。

static public bool fileAccess

该属性用于检测是否可以访问用户磁盘

static public AudioSource PlaySound (AudioClip clip)
static public AudioSource PlaySound (AudioClip clip, float volume)
static public AudioSource PlaySound (AudioClip clip, float volume, float pitch)

一系列重载方法,播放指定的音频,同时可以选择是否制定音量和音调。

static public WWW OpenURL (string url)
static public WWW OpenURL (string url, WWWForm form)

重载方法,获得网络连接内容。

static public int RandomRange (int min, int max)

获得包括最大值和最小值的一个随机整数

static public string GetHierarchy (GameObject obj)

返回一个物体容易识别的层次结构

static public Color ParseColor (string text, int offset)

解析字符串中包含的256位颜色,返回一个Color

static public string EncodeColor ( Color c)

ParseColor方法的逆向工作,用256位编码一个Color

static public int ParseSymbol ( string text, int index, List< Color> colors)

解析字符串中嵌入的标示符,比如设置颜色的[FFAA00]或者是取消颜色变化的[-] NGUI的label支持自定义文字颜色,应该就是利用这个方法解析

static public string StripSymbols ( string text)

将指定字符串中的标示符去掉

static public T[] FindActive () where T : Component

找到所有指定类型的活动的物体

static public Camera FindCameraForLayer ( int layer)

找到指定层中负责绘制物体的摄像机,这个看起来会用到

static public BoxCollider AddWidgetCollider ( GameObject go)

给包含有一个或多个Widget的物体添加一个collider

static public string GetName () where T : Component

辅助方法,以字符串的形式返回类型名称

static public GameObject AddChild ( GameObject parent)

添加空的子物体

static public GameObject AddChild ( GameObject parent, GameObject prefab)

从预设生成物体并作为子物体添加给指定物体。这个十分有用,尤其是动态生成场景或者菜单时,添加子物体后需要自己处理子物体的localpostion和localrotation等,这个方法把这些全部集成了,而且返回添加后的子物体,进一步操作也很方便啊

static public int CalculateNextDepth ( GameObject go)

返回物体下所有组件的最上层深度+1,用于下一个组件,动态添加组件时会用到

static public T AddChild (GameObject parent) where T : Component

添加包含指定类型组件的子物体

static public T AddWidget (GameObject go) where T : UIWidget

添加指定类型的组件

static public UISprite AddSprite ( GameObject go, UIAtlas atlas, string spriteName)

添加一个基于指定图集的Sprite,如果Sprite包含inner rect,添加的就是UISlicedSprite否则就是常规的sprite

static public T FindInParents (GameObject go) where T : Component

返回物体自身或父物体上的指定类型组件

static public void Destroy (UnityEngine. Object obj)

销毁指定物体,如果是编辑模式就立即销毁(Object .DestroyImmediate方法)

static public void DestroyImmediate (UnityEngine. Object obj)

立即销毁(Object.DestroyImmediate方法)指定物体,如果不是编辑模式,就用Destroy方法代替

static public void Broadcast ( string funcName)
static public void Broadcast ( string funcName, object param)

调用所有在本场景中的指定方法

static public bool IsChild ( Transform parent, Transform child)

判断当前层次中‘parent’是否包含‘child’,如果二者都存在并且存在父子关系或二者相同都返回真

static void Activate (Transform t)

激活指定的物体及其子物体

static void Deactivate (Transform t)

停用指定的物体及其子物体

static public void SetActive ( GameObject go, bool state)

用这个方法代替Unity内置的SetActive方法,内置的SetActive有个问题就是内置方法是先激活子物体后激活父物体,这样当子物体的wedget需要调用父物体的panel时,就会出问题了。

static public void SetActiveChildren (GameObject go, bool state)

管理子物体的状态,激活或停用。

static public bool GetActive(GameObject go)

获得物体的状态,是否激活

static public void SetActiveSelf(GameObject go, bool state)

管理物体本身的状态,激活或停用

static public void SetLayer (GameObject go, int layer)

设定物体的层

static public Vector3 Round (Vector3 v)

对一个Vector3变量取整

static public void MakePixelPerfect (Transform t)

对指定变换做PixelPerfect操作

static public bool Save (string fileName, byte[] bytes)

把指定的2进制数据存储到指定文件里

static public byte[] Load (string fileName)

从指定文件加载数据

static public Color ApplyPMA (Color c)

这个真不太懂,懂的同志指导我下啊

static public void MarkParentAsChanged (GameObject go)

通知指定物体下得所有widget,其父物体发生了改变

相关文章推荐

浅谈NGUI的NGUITools类

转自:http://blog.163.com/bowen_tong/blog/static/2068171742014212113057678/

浅谈使用NGUI的界面架构(二)关于NData

浅谈使用NGUI的界面架构(二)关于NData

浅谈使用NGUI的界面架构(一)

浅谈使用NGUI的界面架构(一)

浅谈使用NGUI的界面架构(二)关于NData 作者:kUANG tOBY

浅谈使用NGUI的界面架构(二)关于NData 作者:kUANG tOBY 链接:https://zhuanlan.zhihu.com/p/21306120 来源:知乎 ...

浅谈数位类统计问题

  • 2013年10月01日 14:49
  • 1.75MB
  • 下载

浅谈电气信息大类各专业论文

  • 2012年01月04日 13:25
  • 50KB
  • 下载

NGUI 类皇室战争(CR)的滚动列表效果完整实现(四)

终于到了最后的部分. 这一部分将实现BotBtn点击后还会使得ScrollView水平滑动到相应的页面.同样当ScrollView水平滑动后,BotBtn也会有相应的相应效果.最后的”连通”效果通过...

浅谈Java内部类的四个应用场景

  • 2009年05月11日 13:34
  • 16KB
  • 下载

浅谈Java内部类的四个应用场景

  • 2009年01月04日 17:28
  • 88KB
  • 下载

【NGUI】监听按钮除OnClick外其他事件的方法,附简易改编的UIButton类

大家好,我是雨中祈雨。一直以来,CSDN都是我最好的编程助手。这是我在CSDN的第一篇关于Unity3D的博客,其实也就是记录我在学习Unity3D时遇到的一些小问题从不懂到有所了解的过程。另一方面,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈NGUI的NGUITools类
举报原因:
原因补充:

(最多只允许输入30个字)