在Unity3D开发过程中,NGUI是一个强大的UI框架,它提供了一系列的扩展模块来增强我们的用户体验和开发效率。Unity-NGUIExtension是一系列NGUI的扩展模块,这些模块能够为我们的Unity项目带来额外的功能和优化。
模块概览
UIShaderSprite
UIShaderSprite模块允许我们在NGUI的图集(atlas)中为每一个精灵(sprite)指定和应用特定的着色器(shader)。这个功能在NGUI版本3.7.0或更高版本中可用。
Alpha Masked Shader
Alpha Masked Shader模块使得我们可以使用压缩图像格式来创建图集图像文件,如iOS上的PVRTC格式和Android上的ETC格式。这两种格式都是4位的,可以减少图像大小至原来的1/4。这种技术受到unity-alphamask的启发,并在纹理压缩方面提供了额外的性能优势。
TweenerSlider
TweenerSlider是一个用于UISlider的Tweener组件,它可以在UISlider上绘制燃烧效果,特别是当值下降时。
使用Alpha-Masked图集的NGUI
使用Alpha-Masked图集可以显著减少NGUI的图集图像大小,与RGBA32格式相比,可以减少至1/4。这不仅可以减少图像加载时间,还可以提升游戏的流畅度,从而提升用户体验。然而,使用Alpha蒙版方法对于半透明精灵图像可能不太理想,因为图像可能会因为缺少颜色像素而显得更加透明。
## TweenerSlider实现UISlider燃烧效果通过使用TweenerSlider,我们可以在UISlider上轻松实现燃烧效果。当黄色滑块的值改变后,红色滑块会有一个延迟移动的燃烧效果。通过将TweenSlider组件附加到红色滑块并调用相关的UITweener方法,可以实现这一效果。
public UISlider yellowSlider; // NGUI UISlider object.
public TweenSlider tweener;
...
tweener.ResetToBeginning();
tweener.slider.value = from;
float duration = 0.5f;
float to = yellowSlider.value;
TweenSlider t = TweenSlider.Begin(tweener.slider, duration, to);
t.PlayForward();
其他资源
除了Unity-NGUIExtension提供的模块外,还有其他一些有用的NGUI模块可以在GitHub上找到,例如NGUI Additions、MateNGUI、DataBinderForNGUI和UIUnityRenderer等。