通知设置 新通知
fairygui 做导出的声音 会和其他APP音乐播放的音乐 共同播放吗?还是会直接切掉其他播放器的歌曲?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 766 次浏览 • 2021-11-23 09:25
插件开发-读取多语言XML配置文件(i18n.json)
编辑器使用 • 谷主 回复了问题 • 1 人关注 • 2 个回复 • 1226 次浏览 • 2021-11-23 09:24
使用ui.fairyBatching = true之后按钮显示问题
Unity • 谷主 回复了问题 • 2 人关注 • 2 个回复 • 466 次浏览 • 2021-11-23 09:24
UE4 List 的OnClickItem事件 右键响应而不是左键,这个怎么解决
Unreal • 谷主 回复了问题 • 4 人关注 • 3 个回复 • 865 次浏览 • 2021-11-23 09:23
插件开发-TS开发入门
编辑器使用 • flaot 发表了文章 • 2 个评论 • 3697 次浏览 • 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 个回复 • 1874 次浏览 • 2021-11-20 15:43
TweenMove可以用贝塞尔曲线移动吗?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 916 次浏览 • 2021-11-18 09:18
Unity 3D内容装载器需要卸载吗?
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 776 次浏览 • 2021-11-17 08:08
Unity中 动效有时候会异常中断
编辑器使用 • pbdy 回复了问题 • 3 人关注 • 3 个回复 • 1244 次浏览 • 2021-11-16 15:31
关于添加图集动画的功能
编辑器使用 • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 593 次浏览 • 2021-11-16 08:40
求助!!!GoWrapper中插入Canvas不能正常遮罩
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 650 次浏览 • 2021-11-16 08:09
富文本中超链接的触摸事件应该怎么注册
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 582 次浏览 • 2021-11-15 15:57
FGUI中GList的深拷贝问题
Unity • 谷主 回复了问题 • 2 人关注 • 1 个回复 • 750 次浏览 • 2021-11-15 10:49
文字在手机上显示错乱
Laya • 谷主 回复了问题 • 2 人关注 • 2 个回复 • 577 次浏览 • 2021-11-14 08:51