前言
FairyGUI是一个很强大的游戏UI制作中间件,这里FairyGUI的学习积累和部分使用方法。此处记录了一些使用FairyGUI的过程和一些细节。
使用于Unity3D
- 下载FairyGUIEditor以及UnitySDK
Edtor:https://www.fairygui.com/
SDK:https://github.com/fairygui/FairyGUI-unity 其中把Sripts中的代码原封不动的复制到自己工程就导入了,并把Resources目录中的Shader拷贝过去 - Editor的配置以及注解
- 创建工程:建议创建的目录与Unity3D中Assets同级(如示例项目一样)
- 项目设置:适配测试选择根据屏幕大小缩放,适应宽度和高度,然后设置相应的分辨率
- 发布设置:一般设置直接发布到Unity中去,并且以包分类 全局设置中
例如:../Assets/Build/UI/Module/
其余一般不做修改,然后每个包应用全局设置,默认以package的名字为包名进行生成相应的目录,如需生成代码在设置其代码相关路径。(可以自己去书写生成代码的工具)
只有Texture需要额外处理 - 版本管理:为了防止外部修改导致内部资源库更新不不及时,可以自己定义一个插件,用于更新工程;
- 插件开发:在创建的工程目录下,创建plugins目录,其中每一个文件夹就是一个插件,包含main.lua和package.json。例如:刷新工程插件
API:https://github.com/fairygui/FairyGUI-Editor/tree/master/plugin
local projectPath=PluginPath.."/../../../"
local CreateFile=function(...)
local filePath = PluginPath.."/RefreshProject.txt"
if CS.System.IO.File.Exists(filePath) then
App:RefreshProject()
CS.System.IO.File.Delete(filePath)
end
end
local toolMenu = App.menu:GetSubMenu("tool")
toolMenu:AddItem("更新SVN")
local folderName = false
local Update = function( ... )
if folderName~=App.GetActiveFolder.name then
App:RefreshProject()
folderName=App.GetActiveFolder().name
end
local filePath = PluginPath.."/RefreshProject.txt"
if CS.System.IO.File.Exists(filePath) then
App:RefreshProject()
CS.System.IO.File.Delete(filePath)
end
end
CS.FairyGUI.Timers.inst:AddUpdate(Update)
function onDestroy()
CS.FairyGUI.Timers.inst:Remove(Update)
Update=nil
end
```
- 项目中目录:.objs 自己本地数据,不要加入版本管理
assets 包内容放置目录
settings 配置文件放置目录
×××.fairy 项目标示文件
plugins 插件目录
-
3.
GCButton btn
btn.onClick.Add(函数);
BagWindow:Window 继承于FairyGui的window类
BagWindow bagWindow=new BagWindow();
bagWindow.Show();
public class BagWindow:Window
{
private GList list;
protected override void OnInit()
{
this.contentPane = UIPackage.CreateObject("packagename","itemname").asCom;
list=this.contentPane.GetChild("ItemList").asList;
list.itemRenderer = 函数
list.numItems= 20;
//list.GetChildAt(i);
}
}
FairyGUI中只有组件 GComponent才能添加child,例如纯图片是无法添加子物体的。
学会了GList的使用方法
private GList list;
学会了按钮的特殊字段
title和icon(装载器)
FairyGUI 包管理
按钮的双击/长按/拖动
插件开发
检查是否更新、解决分辨率和屏幕适配问题