跟诸子学游戏 unity3d 使用NGUI需要注意的问题

问题总结:

(1)如果已经导入了NGUI的一个版本的资源包了,那么在此导入NGUI资源包会有什么后果呢?

这个会根据路径替换掉同名文件,并额外导入新的文件

(2)导入解压后,并没有弹出资源包内容预览窗口,而是在Unity编辑器窗口报错了怎么办?

具体看什么错误了,一般出现无法解压包的报错的时候,大家就需要检查下导入的路径是否包含了中文,这个是很多时候都会出错的问题。

(3)如何创建两个UIRoot

NGUI中严格意义上是不能直接创建两套UI的,如果已经创建了一个UI,不管是3D还是2D的UI,那么,Unity顶部NGUI菜单中创建UI的选型都会变灰无法再创建。但是,也许会碰到需要两套UI的情况,这个时候可以把场景中已有的UI关闭,就是去掉激活的勾选按钮,然后再进行创建即可。一般情况下使用2套UI,一个UIRoot进行制作,UI替换使用NGUI中的图集切换以及纹理(图片)切换,如下图 

将所有需要使用图集,纹理切换的控件打上tag,获取之后整体切换atlas和texture.


NGUI多套UI切换原理

(4)如何让粒子在界面上正确显示

NGUI中,渲染的层级关系是由Depth决定的,但是最本质的还是有渲染的RenderQueue决定的,这是一个shader中常见的参数,在NGUI中,每一个Panel上也有一个RenderQ的设置项,RenderQ越高的将会越上层显示。

粒子系统的RenderQ一般是3000,所以,如果希望粒子处于两个Panel之间的话,只需要将其中一个Panel的RenderQ改为StartAt模式,将值设为3000以下的值,然后将另一个Panel的RenderQ设为3000的以上的值,就可以让粒子在两个Panel之间显示了。当然如果只需要让粒子显示在最上层,最简单的办法就是加入一个摄像机,给这个粒子设置一个单独的Layer,让新加入的摄像机只渲染粒子所在的Layer,将这个摄像机的ClearFlag设为Depth Only,然后将渲染的Depth值设为最高的即可。

(5)为什么在父物体上增加透明度动画,子物体没有跟着变化呢?

有时候一个父物体下面有多个子物体,可以利用父物体上的动画带着子物体一起缩放和位移,但是有时候透明度动画却不会带着子物体一起变为透明,这是因为透明度是属于颜色的一种,它是集成了NGUI中Widget的控件才有的属性,例如sprite,label等,如果父物体身上没有任何组件集成Widget,则改变透明度不会影响到子物体,这种情况下,如果又不能故意为父物体赋予一个Sprite,Texture,Label组件的话,那么可以给父物体增加一个Widget组件,增加的方式,是AddComponet,NGUI,UI,NGUIWidget,然后父物体身上的透明度动画就会带着物体一起变化了。

(6)动画为什么有时候播放一遍之后无法再次正常播放

首先动画Tween如果是Once类型的,那么它播放一遍之后,这个动画就永远结束了,它的信息就永远是终点信息了,不管怎样去关闭再激活这个动画组件,它都无法再次进行播放。如果要多次播放动画,可以实现将动画组件关闭,然后在需要播放的地方使用代码去对它进行手动播放,具体操作为在unity3d引擎中将组件的enabled设置为false

,在实际项目中如果要使用Tween动画,如果这个动画是Once类型并且需要多次调用,那么最好事先将动画组件关闭禁用,然后用代码进行控制,可以更好的控制动画。

(7)3DUI模式下,UI资源的尺寸为什么和Snap后和屏幕的大小比例不一致。

遇到这种情况,需要检查UIRoot的缩放类型和标准分辨率设置,看是否和美术人员作图使用的分辨率是一致的,一个游戏项目中一定会有一个标准的参照分辨率。同时在NGUI的某些版本中的3DUI中,会明显的出现这个问题,在这种情况下,只需要将NGUI的Camera的Filed Of View设为75即可,UI分辨率需要在项目开启时和美术人员讨论,开工之后整体分辨率一般不做修改.

(8)UI为什么不收灯光影响

有时候希望NGUI的控件能够受灯光影响,比如希望界面能反光,但是,无论怎么调整灯光的位置和Layer,都无法影响到NGUI的控件,这是因为图片的shader导致的,比如我们在制作图集的时候,生成的图集的材质球的默认shader是不受光照影响的。我们以Sprit精灵图片为例,如果希望它受光照影响,那么制作图集的时候,在生成图集的材质球之后,将图集的材质球的shader更换为一个可以反光的shader,如Reflective等。

(9)为什么3D模型放到UIRoot下就变得看不见了

图片的单位是像素,而Unity是个3D引擎,在Unity的世界里单位是米,而不是像素。为了让图片能再Unity中按照像素级别进行显示,就需要UIRoot这个组件来对整个UI进行放缩,原理就是将米转换为像素,所以把一个长宽高为1米的放到UIRoot下就被渲染成1个像素了,所以看不见了。

(10)为什么Depth更大的图片反而被Depth小的图片遮住

在NGUI中,如果遇到上面的情况,首先检查一下这两个图片是不是属于不同的Panel,因为不论两个图片的Depth怎么设置,具有更高的Depth的Panel的图,会永远遮挡住更低的Depth的Panel的子物体。如果Panel的Depth的图片本身的Depth的关系都没有问题,那么检查一下RenderQ的值.

(11)怎么判断点中的是UI

if(UICamera.IsOverUI){//鼠标光标在UI上,不能影响其他的内容}

(12)文字不清晰明亮怎么解决呢?

使用Label时,发现文字不论调多大都不够清晰,明亮,有可能是以下几种情况。

a.使用的静态字体,因为静态字体就像调用Sprite一样,所以当字体太大时,图片放大了自然就会模糊,所以一般我们还是使用动态字体或者把静态字体分辨率调更好这样可以获得更好的效果。

b.把字体的渐变去掉

c.调整项目质量,就是我们的Quality设置。

(13)为什么创建的物体有BoxCollider却无法接收事件

凡是需要触发事件的,都基本需要boxcollider,但是如果boxcollider无法接收用户操作了那么我们就需要检查如下的内容了

a.看看物体的layer是否被UICamera所在的相机渲染到

b.检查这个物体的Layer在UICamera组件中的EventMask中是否被屏蔽了

c.检查这个物体上层是否有另一个具有BoxCollider的控件给挡住了

d.检查我们的事件监听逻辑是否写得正确

(14)关于ScrollView滑动的问题为什么滑动了没有反应?

a.检查一下ScrollView下包含的内容是否有BoxCollider并能够正常接收事件,如果没有BoxCollider或者BoxCollider不能正常接收事件,则无法拖动ScrollView下的内容来滚动浏览。

b.检查ScrollView下包含的内容是否有DragScrollView组件,ScrollView要正常工作,必须要内容物体上有这个组件,这个组件和BoxCollider缺一不可.

(15)ScrollVIew的滑动方式和效果不是自己想要的

滑动时,希望它不要弹一下,或者到合适的程度不能滑动了等,可以在ScrollView组件中进行设置.

当你使用uisprite的sliced类型时,需要挨着边缘设置,不要将上下左右间隔很大.在代码里面修改长度的时候会造成修改不了长度的问题.

效果正确
设置正确
错误模式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容