UG4L7-3——动态加载界面
UG4L7-3——动态加载界面
本章代码关键字
123456789101112131415161718192021222324252627282930313233343536373839//GRoot相关GRoot //动态创建UI时会自动创建的根对象GRoot.inst.SetContentScaleFactor() //设置适配(分辨率自适应)GRoot.inst.AddChild() //创建好的UI对象添加为GRoot子对象//加载GComponent相关UIPackage.CreateObject() //从包内同步加载UIPackage.CreateObjectAsync() //从包内异步加载//GComponent相关GObject //元件类,GComponent的父类gObject.asCom //返回将GObject对象as成 ...
UG4L7-2——UIPanel加载界面
UG4L7-2——UIPanel加载界面
值得一提的是,使用UIPanel加载页面可以一开始将页面加载好的这种模式
UIPanel一般用来做3DUI,它可以更加方便的挂载到任意GameObject上
优点是可以直接摆放在场景中,但是一般的UI界面不建议使用UIPanel,因为随着UI的增多,项目的变大,通过它管理UI非常的麻烦
如果是动态加载界面,其实是有更好的方法,在下一章讲述
本章代码关键字
123456789UIPanel //UIPanel类,可以加载包里的组件并显示出来uiPanel.packageName //要加载的包名(包需要预先加载)uiPanel.componentName //要加载的组件名uiPanel.CreateUI() //将加载好的组件显示到场景上uiPanel.container.renderMode ...
UG4L7-1——Unity内加载包
UG4L7-1——Unity内加载包
本章代码关键字
1234567FairyGUI //FairyGUI相关内容的命名空间UIPackage //FairyGUI包的类UIPackage.AddPackage() //通过包名,两个AB包或者一个AB包加载FairyGUI包UIPackage.RemovePackage() //通过包名卸载FairyGUI包UIPackage.RemoveAllPackages() //卸载所有的FairyGUI包teachPackage.LoadAllAssets() //提前加载该包的所有贴图声音资源UIPackage.unloadBundleByFGUI //让用于加载包的AB包不被FairyGUI处理,用于需要自行管理AB包的情况
导入UI资源
直接放在Resources或者其子目录下
打包进AB包中
纹理设置注意事项
关于纹理设置的各个参数,详见:U3L2——图片导入概述
Tex ...
UG4L6——发布UI
UG4L6——发布UI
发布设置讲解
页面布局
包列表
切换包设置和全局设置
设置内容
功能按钮
全部发布 发布所有包
仅发布定义 仅发布定义发布包列表中当前选中的包,但仅发布定义,不重新生成纹理集。
通常发布的内容包括素材(图片、声音等)和定义文件,
如果你没有增删改素材,那么你可以仅发布定义文件,
避免了重新生成图集带来的时间消耗。
发布 发布包列表中选中的包
导出资源设置
资源库右键——>设置为导出
认识导出的内容
图集文件(可能有多张)
配置文件(后缀为.bytes的2进制文件)
设置为导出
如果要导出编辑好的组件或者一切将会使用到的资源,你必须要将其设置为导出:
UG4L5——组件
UG4L5——组件
组件
组件,也可以理解为组合控件,所有的UI相关内容都在其中编辑显示,是我们的最基础容器
它可以包含一个或多个基础显示对象,也可以包含组件,我们之后编辑的所有UI内容都是以组件为容器
比如面板,按钮,输入框等等UI内容都是基于组件制作的
在FairyGUI的舞台编辑区域,编辑的就是组件和组件容器中的各种元件位置属性等等
最终我们发布UI文件后,在Unity中也是以组件为最小单位进行内容加载
创建组件
菜单栏——>资源——>新建组件(或者点击快捷按钮)
组件的关键属性
组件
最小\大尺寸:设置组件的尺寸限制,0表示不限制
注意:修改尺寸限制不会修改当前的宽高,即使宽高超出限制
这个最大最小尺寸将该组件拖入到别的组件时,你能修改这个拖入的组件的尺寸的限制
点击轴心右侧三角形可以快速设置轴心的位置
这个轴心影响组件的诸如旋转圆点等计算
注意,这个轴心不参与位置的计算,
如果要其参与,需要勾选同时作为锚点
初始名字:当组件在编辑器内被创建时,
自动设置组件的名称为这里设置的值
主要作用是,FairyGUI中要求窗口框架组件命名为fra ...
UG4L4——包的概念
UG4L4——包的概念
包的定义
包是FairyGUI中用于组织资源的,它在文件系统中体现为一个目录,assets文件夹下的每个子目录都表示一个包
最终我们打包时也是以包为单位进行打包的
每个包中都有一个package.xml文件,它是用于记录这个包中的资源对应信息的,是非常重要的文件
包发布后可以得到一个描述文件和一张或多张纹理集(图集),我们在引擎中使用时,就是根据这个描述文件使用纹理中的图片来创建UI的
新建包
菜单栏——>资源——>新建包(或者点击快捷按钮)
包的依赖
FairyGUI不处理包之间的依赖,假设有两个包A和B,A用到了包B中的元件,那么在使用A中内容时需要先手动加载包B相关内容
资源URL地址
在FairyGUI中每个资源都对应了一个资源URL地址
选中一个资源,右键,会出现复制URL,就可以得到它的资源地址
无论在编辑器还是代码中 我们都可以通过资源地址来得到资源
资源地址规则:ui://包名//资源名
注意:该格式地址是不包含文件夹的,只需要用包名和资源名
划分包的原则
划分包的原则:
不要建立交叉引用,公共资源放在公共包中,避免A用 ...
UG4L3——项目设置
UG4L3——项目设置
打开项目设置
主菜单——>文件——>项目设置
项目设置相关
项目设置的重要性
可以修改实际运行的平台
可以设置在编辑器内的一些默认值
可以设置 方便我们使用的 字体列表 颜色列表 字体大小列表
可以进行 分辨率自适应的基础设置
可以编辑 项目分支、多国语言、自定义属性
我们一般新建一个FGUI的工程后 最好就把这些项目基础设置 设置好
UG4L2——编辑器基础使用
UG4L2——编辑器基础使用
创建新项目
注意点:
路径不要带中文
是否在此位置创建新目录
项目文件夹结构
assets:包内容放置目录 ——> package1:
每个包一个目录。目录名就是包名
assets_xx:分支内容放置目录,xx就是分支名称,
多个分支存在多个类似名称的目录
settings:配置文件放置目录
.objs:内部数据目录。不需要进行版本管理,这里的内容不需要共享
.fairy:项目标识文件。文件名就是项目名,可以随便修改
认识主界面
菜单栏
主工具栏:常用功能按钮
工具栏和舞台区域
状态栏,显示控制台输出的最后一条信息,点击可打开控制台
其它功能视图:可以随意拖动位置,也可以关闭,在主菜单->视图中可以打开关闭后的窗口
资源导入支持
可以将资源直接拖入资源库中,支持的格式:
图片(PNG、JPG、TGA、SVG等)
声音(MP3、wav等)
动画(spine、龙骨、gif、Flash等)
文字(TTF、位图文字)
UG4L1——FairyGUI编辑器下载和UnitySDK下载
UG4L1——FairyGUI编辑器下载和UnitySDK下载
FairyGUI编辑器下载
前往官网 进行下载 https://www.fairygui.com
不想记忆网址,在搜索引擎搜索 FairyGUI 进入官网
下载Unity SDK
在Unity中的 Asset Store中搜索 FairyGUI 进行下载
之后的学习方向
先了解FairyGUI的基本工作机制,让FairyGUI和Unity建立联系
再学习它提供的各种功能
UH——Unity热更新笔记
UH——Unity热更新笔记
热更新
游戏或者软件更新时,无需重新下载客户端进行安装
而是在应用程序启动的情况下在内部进行的资源或者代码更新
笔记代号UH——即Unity HotUpdate的缩写
本笔记包括以下系列
热更新基础 —— AssetBundle
热更新方案 —— Lua相关
Lua方案基础 —— Lua
Lua热更新方案 —— xLua
Lua热更新方案 —— toLua
热更新基础 —— AB包的上传与下载
热更新方案 —— ILRuntime
常见的热更新解决方案
从早到晚包括以下的热更新方案
Lua —— xLua或toLua都是内置Lua虚拟机,解释执行Lua代码
ILRuntime—— 内置C#字节码解释器,解释执行C#代码
Puerts —— 内置JavaScript/TypeScript解释器,解释执行TypeScript代码
HybridCLR(Huatuo)—— 在IL2CPP中添加一个可装载C#字节码,解释执行C#字节码的功能(高性能)
热更新的好处
迅速修复Bug
避免重新下载安装包,游戏内部更新修复Bug
提升玩 ...