本文主要是引导怎么从fairygui页面ui编辑到unity的过程,如果想详细的那种,最好下载一个官方案例,里面都有详细的教程。不过这个对于新手来说还是挺好的(因为我刚开始以为是自己创建代码,自己写)

先去官网下载一个gui编辑器:

这是API函数:

创建一个组件:

这个组件就是一个界面ui

开始拼凑界面,所需要的操作需要到官网去查使用方法:

fabric 用法 fairy用法_UI

然后将需要用到的东西设置为导出:会在ui右下角出现一个红色小点点

fabric 用法 fairy用法_unity_02

设置为导出后,点击文件的发布设置:

fabric 用法 fairy用法_fabric 用法_03

发布界面更具自己需求来进行发布:

打包发布,最好发布到Unity工程的Resources目录,点击全部发布即可

如果是已经创建了unity项目,这个只是新加的,那么可以选择单个发布

允许发布代码:会自动生成ui代码,(最好使用这个方法,简单,后面只需要修改界面参数就行了)

fabric 用法 fairy用法_fabric 用法_04

允许发布代码之后,右键创建一个fairgui:

fabric 用法 fairy用法_UI_05

在uipanel上面选择你自己在fairgui里面创建的包和ui组件名字:

ps:如果没有,说明你没打包发布代码或者没有导出

然后在自己挂上去你自己修改的脚本代码:下图为我添加的脚本

fabric 用法 fairy用法_fabric 用法_06

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class test1scr : MonoBehaviour
{
    GList list;
    //GetChild获取子组件
    private void Awake()
    {
        //加载test1的包,因为我发布到的是resources/UI
        UIPackage.AddPackage("UI/test1");
    }
    void Start()
    {
        //获取组件下的ui(为main这个组件)的list组件
        list = GetComponent<UIPanel>().ui.GetChild("list").asList;
        //数据源处理(这是一个委托,所以必须有参数int和GObject)
        list.itemRenderer = listitems;
        //list数据多少设置
        list.numItems = 20;
    }
    void listitems(int index, GObject obj)
    {
        GButton item = (GButton)obj;
        //n5为我的text名字
        item.GetChild("n5").asTextField.text = "index:" + index;
        //添加的ui://test1/r0为我ui里面的test1包里面的图片资源,之前发布的时候一起导出来的
        item.GetChild("icon").asLoader.url = "ui://test1/r0";
        item.data = index;
        //添加的按钮点击事件
        item.GetChild("n6").asButton.onClick.Add(itemon);
    }
    public void itemon(EventContext context)
    {

    }
    // Update is called once per frame
    void Update()
    {
        
    }
}