Calmer的文章

  • 首页
  • 文章归档
  • 关于页面

  • 搜索
体验游戏 笔记 推荐 工具链 工具使用 小游戏 插件 UI 软件 教程

FairyGUI的学习

发表于 2020-06-21 | 分类于 游戏开发 | 0 | 阅读次数 1093

前言

FairyGUI是一个很强大的游戏UI制作中间件,这里FairyGUI的学习积累和部分使用方法。此处记录了一些使用FairyGUI的过程和一些细节。


使用于Unity3D

  1. 下载FairyGUIEditor以及UnitySDK
    Edtor:https://www.fairygui.com/
    SDK:https://github.com/fairygui/FairyGUI-unity 其中把Sripts中的代码原封不动的复制到自己工程就导入了,并把Resources目录中的Shader拷贝过去
  2. 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 包管理
按钮的双击/长按/拖动
插件开发
检查是否更新、解决分辨率和屏幕适配问题

  • 本文作者: Calmer
  • 本文链接: https://mytechplayer.com/archives/fairygui的使用
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
# 工具链
CommandTool
正则表达式
  • 文章目录
  • 站点概览
Calmer

Calmer

88 日志
7 分类
10 标签
RSS
Creative Commons
  1. 前言
  2. 使用于Unity3D
0%
© 2020 — 2025 Calmer
由 Halo 强力驱动
蜀ICP备20010026号-1川公网安备51019002006543
Copyright © 2020-2025 Calmer的文章