前言
之前研究了一些Xlua想搞热更新,得需要一套UI框架,公司的那套局限性太强,不得已只能另辟蹊径,之前听朋友说公司是用FairyGUI做开发,于是乎准备搞一个自学笔记,记录一些自学的经验(只针对于代码的笔记,操作太繁杂具体自行找官方文档学习或跳转视频学习链接:http://www.sikiedu.com/my/course/139)。
加载资源到场景中
GRoot.inst.SetContentScaleFactor(1920, 1080); //设置分辨率
UIPackage.AddPackage("Package1"); //添加资源包
GComponent com = UIPackage.CreateObject("Package1", "Component1").asCom; //从资源包中获取组件名为Component1的组件
GRoot.inst.AddChild(com); //将Component1组件放到主面板下
按钮添加点击事件
GObject button = com.GetChild("n0"); //在主面板下找到n0组件
GComponent boss = UIPackage.CreateObject("Package1", "Boss").asCom; //获取Boss组件
GRoot.inst.AddChild(boss); //将Boss组件放到主面板下
button.onClick.Add(()=> { PlayUI(boss); }); //给n0按钮组件添加点击事件
///点击事件方法,comp即为boss
public void PlayUI(GComponent comp)
{
comp.GetTransition("t0").Play(); //播放t0动画组件
}
列表的写法
void Start () {
GComponent com = UIPackage.CreateObject("Package2", "Component1").asCom; //创建组件
GRoot.inst.AddChild(com); //设置为子物体
GList list = com.GetChild("n0").asList; //获取列表组件
list.itemRenderer = RenderListItem; //设置列表显示的方法
list.numItems = 100; //显示的数量
}
//index是下标0开始,obj是子物体,这个子物体就是我们在编辑器中资源项目选择的对象
public void RenderListItem(int index,GObject obj)
{
GComponent com = obj.asCom; //转成compoent
com.GetChild("n0").text = index + ""; //将子物体中的n0对象设置文字
com.GetChild("n1").text = index+1 + "";
}