通知设置 新通知
插件RefreshProject问题
谷主 回复了问题 • 2 人关注 • 1 个回复 • 861 次浏览 • 2021-12-10 09:58
谷主大大,能出个详细的插件教程不~
谷主 回复了问题 • 2 人关注 • 1 个回复 • 761 次浏览 • 2021-12-07 09:36
字符串导出,内容去空格了
miesword 回复了问题 • 3 人关注 • 2 个回复 • 1333 次浏览 • 2021-12-06 18:15
TextMeshPro字体导入Unity中字体不支持置灰
谷主 回复了问题 • 2 人关注 • 2 个回复 • 955 次浏览 • 2021-12-06 11:21
多语言下怎么导出单种语言的字符串xml
谷主 回复了问题 • 2 人关注 • 3 个回复 • 616 次浏览 • 2021-11-25 09:11
插件开发-读取多语言XML配置文件(i18n.json)
谷主 回复了问题 • 1 人关注 • 2 个回复 • 1235 次浏览 • 2021-11-23 09:24
插件开发-TS开发入门
flaot 发表了文章 • 2 个评论 • 3751 次浏览 • 2021-11-22 12:16
一、编辑环境
1.在FairyGUI编辑器中 插件 -> 创建新插件 -> 插件模板[发布代码(TypeScript)] -> 创建
2.使用VSCode打开插件所在目录
二、认识插件
FairyGUI-Editor 以下简称为 FGUI
打开插件主入口文件main.ts
最后一行是开放给FGUI调用的内置生命周期函数export { onPublish, onDestroy };在插件中注册的回调必须在onDestroy中全部已确认反注册,否则刷新插件后插件运行环境会崩溃; 如下示列let onTestPlay = new FairyGUI.EventCallback1((c) => {
console.log("test is play");
});
App.On(FairyEditor.EditorEvents.TestStart, onTestPlay) //注册FGUI运行时触发回调
function onDestroy() {
App.Off(FairyEditor.EditorEvents.TestStart, onTestPlay)
}需要反注册的回调必须new对应的回调对象去包装,否则不能正常反注册, 详细查看
Puerts与Unity交互手册
三、扩展
1.顶部菜单栏var menu = App.menu.GetSubMenu("tool")
menu.AddItem("display name", "name", (name) => {
console.log("call menuitem.");
});
function onDestroy() {
menu.RemoveItem("name");
}只要获取到对应menu对象,其他的菜单也是如此添加
App.libView.contextMenu //右键package菜单
2.检查器
查看官方案例 CustomInspectorTs
四、列举部分常用API
App.activeDoc //当前打开界面
App.activeDoc.inspectingTarget; //获取当前打开界面中的选中对象(FOjbect)
FairyEditor.FObjectFactory.CreateObject //FPackageItem 转 FObject
FairyEditor.DependencyQuery.QueryDependencies //查找资源依赖
FairyEditor.BuilderUtil.OpenWithDefaultApp //使用默认软件打开
App.RefreshProject(); //刷新工程
System.IO //文件or目录操作 System开头的都是C#API
FairyEditor.ProcessUtil.Start //启动外部程序进程
五、示列
1.改变当前选中文本控件的文本let selectObj = App.activeDoc.inspectingTarget;
if(selectObj.objectType == FairyEditor.FObjectType.TEXT) {
var txtObj = selectObj as FairyEditor.FTextField;
txtObj.text = "111";
App.activeDoc.RefreshInspectors(FairyEditor.View.InspectorUpdateFlags.COMMON); //刷新Inspector面板
}
2.获取当前Package中所有Componentlet packageRoot = App.activeDoc.packageItem.owner;
for (var i = 0; i < packageRoot.items.Count; ++i) {
var packageItem = packageRoot.items.get_Item(i);
if (packageItem.type == FairyEditor.FPackageItemType.COMPONENT)
console.log(packageItem.name);
}3.刷新多语言文本let btnReload = App.mainView.toolbar.GetChild("tbReload").asButton;
if (btnReload == null) {
console.error("no found reload button.");
return;
}
if (App.testView.running) {
btnReload.FireClick(true, true);
console.log("fire click")
}4.FPackageItem转FObject if (App.activeDoc.packageItem.type == FairyEditor.FPackageItemType.COMPONENT) {
var fObj = FairyEditor.FObjectFactory.CreateObject(App.activeDoc.packageItem) as FairyEditor.FComponent;
console.log(fObj.objectType);
}六、相关资料
App.mainView.toolbar.GetChild("tbReload")
这个tbReload字符串是在FGUI编辑器工程找到的 其他的也类似, 对象方法什么的跟UnitySDK基本一致
比如要监听按钮点击 获取对应对象注册onClick就行
查看全部
一、编辑环境
1.在FairyGUI编辑器中 插件 -> 创建新插件 -> 插件模板[发布代码(TypeScript)] -> 创建
2.使用VSCode打开插件所在目录
二、认识插件
FairyGUI-Editor 以下简称为 FGUI
打开插件主入口文件main.ts
最后一行是开放给FGUI调用的内置生命周期函数
export { onPublish, onDestroy };在插件中注册的回调必须在onDestroy中全部已确认反注册,否则刷新插件后插件运行环境会崩溃; 如下示列
let onTestPlay = new FairyGUI.EventCallback1((c) => {需要反注册的回调必须new对应的回调对象去包装,否则不能正常反注册, 详细查看
console.log("test is play");
});
App.On(FairyEditor.EditorEvents.TestStart, onTestPlay) //注册FGUI运行时触发回调
function onDestroy() {
App.Off(FairyEditor.EditorEvents.TestStart, onTestPlay)
}
Puerts与Unity交互手册
三、扩展
1.顶部菜单栏
var menu = App.menu.GetSubMenu("tool")只要获取到对应menu对象,其他的菜单也是如此添加
menu.AddItem("display name", "name", (name) => {
console.log("call menuitem.");
});
function onDestroy() {
menu.RemoveItem("name");
}
App.libView.contextMenu //右键package菜单
2.检查器
查看官方案例 CustomInspectorTs
四、列举部分常用API
App.activeDoc //当前打开界面
App.activeDoc.inspectingTarget; //获取当前打开界面中的选中对象(FOjbect)
FairyEditor.FObjectFactory.CreateObject //FPackageItem 转 FObject
FairyEditor.DependencyQuery.QueryDependencies //查找资源依赖
FairyEditor.BuilderUtil.OpenWithDefaultApp //使用默认软件打开
App.RefreshProject(); //刷新工程
System.IO //文件or目录操作 System开头的都是C#API
FairyEditor.ProcessUtil.Start //启动外部程序进程
五、示列
1.改变当前选中文本控件的文本
let selectObj = App.activeDoc.inspectingTarget;
if(selectObj.objectType == FairyEditor.FObjectType.TEXT) {
var txtObj = selectObj as FairyEditor.FTextField;
txtObj.text = "111";
App.activeDoc.RefreshInspectors(FairyEditor.View.InspectorUpdateFlags.COMMON); //刷新Inspector面板
}
2.获取当前Package中所有Component
let packageRoot = App.activeDoc.packageItem.owner;3.刷新多语言文本
for (var i = 0; i < packageRoot.items.Count; ++i) {
var packageItem = packageRoot.items.get_Item(i);
if (packageItem.type == FairyEditor.FPackageItemType.COMPONENT)
console.log(packageItem.name);
}
let btnReload = App.mainView.toolbar.GetChild("tbReload").asButton;4.FPackageItem转FObject
if (btnReload == null) {
console.error("no found reload button.");
return;
}
if (App.testView.running) {
btnReload.FireClick(true, true);
console.log("fire click")
}
if (App.activeDoc.packageItem.type == FairyEditor.FPackageItemType.COMPONENT) {六、相关资料
var fObj = FairyEditor.FObjectFactory.CreateObject(App.activeDoc.packageItem) as FairyEditor.FComponent;
console.log(fObj.objectType);
}
App.mainView.toolbar.GetChild("tbReload")
这个tbReload字符串是在FGUI编辑器工程找到的 其他的也类似, 对象方法什么的跟UnitySDK基本一致
比如要监听按钮点击 获取对应对象注册onClick就行
Unity中 动效有时候会异常中断
pbdy 回复了问题 • 3 人关注 • 3 个回复 • 1248 次浏览 • 2021-11-16 15:31
关于添加图集动画的功能
谷主 回复了问题 • 2 人关注 • 1 个回复 • 598 次浏览 • 2021-11-16 08:40
GLoader能否增加翻转选项,可以对里面图片和GMovieClip有效
回复bingo2009 发起了问题 • 1 人关注 • 0 个回复 • 761 次浏览 • 2021-11-10 15:42
组件最小尺寸,最大尺寸
谷主 回复了问题 • 2 人关注 • 1 个回复 • 1188 次浏览 • 2021-11-09 09:08
发起的问题怎么删除?
谷主 回复了问题 • 2 人关注 • 1 个回复 • 394 次浏览 • 2021-11-09 09:04
如果能扩展自定义字段就好了,可以扩展很多自定义的功能
谷主 回复了问题 • 2 人关注 • 1 个回复 • 734 次浏览 • 2021-11-09 09:04
两个label建立高级组,设置组居中有偏差组
谷主 回复了问题 • 2 人关注 • 1 个回复 • 381 次浏览 • 2021-11-05 09:52
fgui编辑器中包的刷新能否通过代码调用
fgui_learner 回复了问题 • 3 人关注 • 2 个回复 • 1486 次浏览 • 2021-11-04 14:25
动画在dom中显示异常
qwe3775226 回复了问题 • 3 人关注 • 2 个回复 • 667 次浏览 • 2021-11-04 09:57
列表的选择控制时点击列表选项无法翻页?
Xfeifan 回复了问题 • 3 人关注 • 3 个回复 • 944 次浏览 • 2021-10-28 18:06