Tag Archives: NGUI

用NGUI UIPanel实现简单的遮罩

有时候我们需要用到遮罩,比如只想要显示某图片上半部分的时候。NGUI提供了UIPanel的方法来实现简单的矩形遮罩。以下是使用方法:

  1. 将需要遮罩的图片(一般是UITexture)放到遮罩的子层里。
  2. 设置UIPanel的Clipping属性为Soft Clip。
  3. 调整遮罩的宽高,位置。

注意:如果与UIPanel有父子关系(包括间接)的任何GameObject有缩放,必须保证他们的x,y,z缩放值是一样的,否则遮罩将不起作用。

使用TexturePacker生成NGUI Atlas

为什么要用Texturepacker去生成NGUI的Atlas呢?很简单,因为NGUI自己的Atlas Maker不好用!特别是在有半透明图像的情况下,经常会导致UI原件的边缘有杂色。经尝试,用Texturepacker生成的贴图果然就没有此问题,下面是生成步骤:

  1. 切图,用PS去狂切吧…
  2. 将图片导入TexturePacker,格式选择Unity – JSON data(.txt),图片格式PNG,可选Premultiply alpha。然后一定不要选择Allow rotation。设置完后点生成即可。
  3. 将TexturePacker生成的png和txt导入Unity Assets。
  4. Png的Texture Type选择GUI,Format选择Truecolor,这样图像质量会更好。
  5. 在Assets中创建一个Material,Texture选择刚刚导入的png,Shader选择Unlit/Transparent Colored。
  6. 创建一个空GameObject,通过Add Component添加一个UIAtlas脚本NGUI->UI->Atlas。设置其Material为刚创建的材质,TP Import为之前导入的txt文件。
  7. 在Assets中创建一个Prefab,然后把上面的GameObject拖入。
  8. 大功告成。