通知设置 新通知
UE4 List 的OnClickItem事件 右键响应而不是左键,这个怎么解决
Unreal • 谷主 回复了问题 • 4 人关注 • 3 个回复 • 871 次浏览 • 2021-11-23 09:23
插件开发-TS开发入门
编辑器使用 • flaot 发表了文章 • 2 个评论 • 3770 次浏览 • 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就行
fairygui在cocos下面用c++_static编译链接时报错
Cocos2dx • arsenalxj 回复了问题 • 3 人关注 • 2 个回复 • 1885 次浏览 • 2021-11-20 15:43
TweenMove可以用贝塞尔曲线移动吗?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 932 次浏览 • 2021-11-18 09:18
Unity 3D内容装载器需要卸载吗?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 781 次浏览 • 2021-11-17 08:08
Unity中 动效有时候会异常中断
编辑器使用 • pbdy 回复了问题 • 3 人关注 • 3 个回复 • 1251 次浏览 • 2021-11-16 15:31
关于添加图集动画的功能
编辑器使用 • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 599 次浏览 • 2021-11-16 08:40
求助!!!GoWrapper中插入Canvas不能正常遮罩
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 653 次浏览 • 2021-11-16 08:09
富文本中超链接的触摸事件应该怎么注册
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 584 次浏览 • 2021-11-15 15:57
FGUI中GList的深拷贝问题
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 758 次浏览 • 2021-11-15 10:49
文字在手机上显示错乱
Laya • 谷主 回复了问题 • 2 人关注 • 2 个回复 • 582 次浏览 • 2021-11-14 08:51
播放位移动效中打开下拉菜单导致其位置错误
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 377 次浏览 • 2021-11-12 18:19
[unreal] 组件点击事件打印的屏幕坐标大量偏移。
Unreal • 谷主 回复了问题 • 2 人关注 • 2 个回复 • 921 次浏览 • 2021-11-12 18:18
GoWrapper是否会和它所在的页面一起销毁?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 973 次浏览 • 2021-11-12 18:16