插件回调问题

谷主 回复了问题 • 2 人关注 • 1 个回复 • 621 次浏览 • 2021-12-15 09:13 • 来自相关话题

插件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) => {
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中所有Component
let 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就行
 

Unity中 动效有时候会异常中断

pbdy 回复了问题 • 3 人关注 • 3 个回复 • 1248 次浏览 • 2021-11-16 15:31 • 来自相关话题

关于添加图集动画的功能

谷主 回复了问题 • 2 人关注 • 1 个回复 • 598 次浏览 • 2021-11-16 08:40 • 来自相关话题

FGUI发布失败

萌新登场 回复了问题 • 4 人关注 • 3 个回复 • 1559 次浏览 • 2021-11-11 15:46 • 来自相关话题

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 • 来自相关话题

.jta文件无法导出

回复

讲真 回复了问题 • 1 人关注 • 1 个回复 • 764 次浏览 • 2021-11-05 15:03 • 来自相关话题

两个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 • 来自相关话题