最近正在使用NGUI,发现这确实是个简单使用却功能强大的工具,用的过程中发现NGUI封装了许多有用的小工具类,比如今天想谈的NGUITools类。该类封装了诸如播放音效、获取组件等等方法。下面一一谈谈自己的浅见,主要就是对功能做了下说明,今后项目中如果遇到,再补充更多的实用体验吧,也希望大家多多拍砖。
staticpublicfloatsoundVolume
该属性是全局音效播放音量,按照文档说是用于NGUITools.PlaySound(),那也就意味着我的游戏如果用NGUITools.PlaySound()管理游戏中的音效,同时也可以用于产品音效控制。
staticpublicboolfileAccess
该属性用于检测是否可以访问用户磁盘
staticpublicAudioSourcePlaySound(AudioClipclip)
staticpublicAudioSourcePlaySound(AudioClipclip,floatvolume)
staticpublicAudioSourcePlaySound(AudioClipclip,floatvolume,floatpitch)
一系列重载方法,播放指定的音频,同时可以选择是否制定音量和音调。
staticpublicWWWOpenURL(stringurl)
staticpublicWWWOpenURL(stringurl,WWWFormform)
重载方法,获得网络连接内容。
staticpublicintRandomRange(intmin,intmax)
获得包括最大值和最小值的一个随机整数
staticpublicstringGetHierarchy(GameObjectobj)
返回一个物体容易识别的层次结构
staticpublicColorParseColor(stringtext,intoffset)
解析字符串中包含的256位颜色,返回一个Color
staticpublicstringEncodeColor(Colorc)
ParseColor方法的逆向工作,用256位编码一个Color
staticpublicintParseSymbol(stringtext,intindex,List
解析字符串中嵌入的标示符,比如设置颜色的[FFAA00]或者是取消颜色变化的[-]NGUI的label支持自定义文字颜色,应该就是利用这个方法解析
staticpublicstringStripSymbols(stringtext)
将指定字符串中的标示符去掉
staticpublicT[]FindActive()whereT:Component
找到所有指定类型的活动的物体
staticpublicCameraFindCameraForLayer(intlayer)
找到指定层中负责绘制物体的摄像机,这个看起来会用到
staticpublicBoxColliderAddWidgetCollider(GameObjectgo)
给包含有一个或多个Widget的物体添加一个collider
staticpublicstringGetName()whereT:Component
辅助方法,以字符串的形式返回类型名称
staticpublicGameObjectAddChild(GameObjectparent)
添加空的子物体
staticpublicGameObjectAddChild(GameObjectparent,GameObjectprefab)
从预设生成物体并作为子物体添加给指定物体。这个十分有用,尤其是动态生成场景或者菜单时,添加子物体后需要自己处理子物体的localpostion和localrotation等,这个方法把这些全部集成了,而且返回添加后的子物体,进一步操作也很方便啊
staticpublicintCalculateNextDepth(GameObjectgo)
返回物体下所有组件的最上层深度+1,用于下一个组件,动态添加组件时会用到
staticpublicTAddChild(GameObjectparent)whereT:Component
添加包含指定类型组件的子物体
staticpublicTAddWidget(GameObjectgo)whereT:UIWidget
添加指定类型的组件
staticpublicUISpriteAddSprite(GameObjectgo,UIAtlasatlas,stringspriteName)
添加一个基于指定图集的Sprite,如果Sprite包含innerrect,添加的就是UISlicedSprite否则就是常规的sprite
staticpublicTFindInParents(GameObjectgo)whereT:Component
返回物体自身或父物体上的指定类型组件
staticpublicvoidDestroy(UnityEngine.Objectobj)
销毁指定物体,如果是编辑模式就立即销毁(Object.DestroyImmediate方法)
staticpublicvoidDestroyImmediate(UnityEngine.Objectobj)
立即销毁(Object.DestroyImmediate方法)指定物体,如果不是编辑模式,就用Destroy方法代替
staticpublicvoidBroadcast(stringfuncName)
staticpublicvoidBroadcast(stringfuncName,objectparam)
调用所有在本场景中的指定方法
staticpublicboolIsChild(Transformparent,Transformchild)
判断当前层次中‘parent’是否包含‘child’,如果二者都存在并且存在父子关系或二者相同都返回真
staticvoidActivate(Transformt)
激活指定的物体及其子物体
staticvoidDeactivate(Transformt)
停用指定的物体及其子物体
staticpublicvoidSetActive(GameObjectgo,boolstate)
用这个方法代替Unity内置的SetActive方法,内置的SetActive有个问题就是内置方法是先激活子物体后激活父物体,这样当子物体的wedget需要调用父物体的panel时,就会出问题了。
staticpublicvoidSetActiveChildren(GameObjectgo,boolstate)