FairyGUI笔记

问题

:虚拟列表?

问题:包不放在resources文件夹会怎样?

列表,控制器,装载器,关联有空再写。

虚拟列表,frame等关键字。

窗口继承的解决方案

与Unity使用


每次新建工程都要导入插件,不然无法使用FairyUI的组件。

UI Panel

添加UIpanel以后可能会出现组件位置错位的问题,需要在UIpanel上添加一个叫做UI Content Scaler的组件并在Scale Mode选项下选择Scale With Screen Size,输入预定的分辨率即可恢复正常:

Image20180910160353.png

(如果觉得每次都在UIpanel添加组件很烦,可以将该组件挂载至Stage Camera上)

添加UI panel以后可能会出现组件重影的错误,是因为Unity渲染了两次组件,可以把culling mask关掉来解决这个问题。

关于UIpanel的资源载入:

在编辑状态下,无论UI组件引用了哪些UI包的资源,包括放置在Resources目录下的和不放置在Resources下的,都能够正确显示。但当运行后,UIPanel只能自动载入放置在Resources目录或其子目录下的UI包,也只会载入自身所在的UI包,其他情况的UI包(例如引用到的UI包或打包到AssetBundle的UI包)不能自动载入。你需要在UIPanel创建前使用UIPackage.AddPackage准备好这类UI包。UIPanel在Start事件或者第一次访问UIPanel.ui属性时创建UI界面,你仍然有机会在Awake里完成这些操作。

添加一个字体后,也是通过发布包进入的Unity。

高级组

如果想在Unity中使用组来管理组件元件,必须要将组设置为高级组才能进行相关操作。

编辑器的使用


参考可以看官方文档,主要写一下容易被忘的点。

元件组成的组件,几个组件又可以组成一个新的组件。组件要设置为可导出才能使用,可导出的组件在编辑器中有一个红色的标记。

关联是可以关联本身的。自行设置组件的锚点会导致无法使用关联系统。

普通组只能实现对一堆组件进行常规管理,若想实现集体不可及等设置,或要在unity中使用组,需要设置为高级组

自定义字体通过导入位图来实现,在FariyGUI中位图的最后一个字符会被自动识别成图片的值,也就是说如果想让导入的位图自动生成想要的值,那么在位图的名字最后面写入值。

在按钮的右侧面板上有这样的提示:Image20180910162507.png,如果需要在Unity以及其他开发平台上对按钮的图标和文本以及控制器进行获取和控制,需要按要求改名字,frame也一样(frame抽空再写,为了实现窗口架构他必须有这个名字。)。(eg; 图片装载器命名为icon,不能加别的。)

九宫切图可以使文本框图片放大而不失真。

标签可以用于对动画运动过程的判断。

导出素材时在纹理及定义勾选上下图几项,不然UI的背景颜色无法分离以及旋转会出现问题:

Image20181009163042.png

适用按钮,这个小箭头用来自动调整元件尺寸的:

Image 0011548512212.png

溢出处理可以设置为垂直或水平滚动,在代码里控制这个属性也可以。

API


GList(列表)

对列表增删改后,列表是自动排列和刷新的,不需要调用任何API。

或者使用回调函数更新:先定义一个回调函数用于修改item,然后将该回调函数设置为渲染函数。当对list的数量进行赋值时,会调用回调函数渲染item。

例子:

 

Lua中使用


LimitedBuyStoreWindow.delayInit = true这样的代码代表资源加载后在显示UI

脚本绑定的问题

fgui.register_extension(UIPackage.GetItemURL(“LimitedBuyStore”, “LimitedBuyStoreRender”), LimitedBuyStoreRender)这句话代表LimitedBuyStoreRender脚本与URL中同名的该组件合并

LimitedBuyStoreRender = fgui.extension_class(GComponent)

UICore:DisposeExtensionClass(self.itemRender)

asCom,asXXX这些是properties,不需要像调用方法一样调用。

 

 

 

 

 

 

 

 

 

 


Fariy的原理

 

 

 


Updated: 2019年1月26日 — 下午10:18

发表评论

电子邮件地址不会被公开。 必填项已用*标注