图片

图片是FairyGUI中最基础的元素,它的设计是尽量考虑到简洁而且高效的。因此,不提供修改图片源的功能,也不支持点击。如果需要动态更改,或者支持点击,请改用装载器(如果图片已经放置在舞台,那么在右键菜单中选择交换元件,再选择装载器,就可以快捷地把图片修改为装载器了)。

FairyGUI支持的图片格式有:PNG,JPG,TGA,PSD,SVG。

图片属性

在资源库中,或者舞台上,双击图片,进入图片设置对话框:

功能按钮:

高清资源选择

做过APP开发的小伙伴应该对这个机制比较熟悉。例如我们为IPhone8设计的一套界面,分辨率是1334x750,用到一个图片a.png,这套UI到IPhone XS Max显示时,a.png就需要被放大两倍显示,放大的结果通常是比原图模糊。因此我们会准备一个a@2x.png,用作这种情况显示,使界面显示效果呈现高清的效果。

现在我们把这种机制也内置到了FairyGUI。在发布设置对话框里,我们提供了@2x,@3x,@4x的选项,勾选后,如果存在与资源同名且带@2x、@3x、@4x后缀的资源,则发布时会一并打包。运行时则根据当然界面放大系数自动选用适合的资源。这套机制全自动的,程序员无感知。唯一需要做的就是在编辑器放置好资源。

实例属性

在舞台上选中一个图片,右边的检查器出现:

GImage

图片我们一般不直接使用new来创建,也很少有需要单独创建图片的需求。它一般直接放置在其他组件中作为组成元素。如果确实需要实例化一个图片,可以使用以下方法:

GImage aImage = UIPackage.CreateObject("包名","图片名").asImage;

图片作为UI的一个基础组成元素,它的设计首先是考虑到简单高效,所以是不提供API修改图片的。如果有动态更改图片的需求,应该改为使用装载器(GLoader)。

如果图片设置了填充模式,可以通过代码修改填充比例,例如:

aImage.fillAmount = 0.5; //0~1

在Unity平台中,如果在某些特殊场合需要将Texture2D对象赋予给GImage,可以这样做:

//必须注意GImage不管理外部对象的生命周期,不会主动销毁your_Texture2D
aImage.texture = new NTexture(your_Texture2D);

再次强调,这种需求仍然是建议尽量使用装载器实现。

在Unity平台中,你可以为GImage设置自定义的材质,或者着色器。例如:

aImage.shader = yourShader; 
//或者
aImage.material = yourMaterial;