当前位置: 首页 > news >正文

建行个人手机银行app下载南宁seo费用服务

建行个人手机银行app下载,南宁seo费用服务,岳池住房和城乡建设厅网站,建立网站内容本文涉及到的软件有#xff1a;FairyGUI#xff0c;VSCode 代码环境涉及到了#xff1a;Lua VSCode插件#xff1a;EmmyLua 在编写FairyGUI编辑器菜单前#xff0c;了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能…本文涉及到的软件有FairyGUIVSCode 代码环境涉及到了Lua VSCode插件EmmyLua 在编写FairyGUI编辑器菜单前了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能实现的插件中我使用的是lua环境模板。导入编辑器的LuaAPI文件可以在FairyGUI-Editor源码的插件目录中找到。接下来将通过功能来说明对应的API作用。 插件的位置 如果找不到插件面板可以通过“视图→插件”或“工具→插件”添加插件面板。 1、打开插件目录插件目录是在“项目目录/plugins文件夹下每个插件对应一个子文件夹。 2、创建新插件 3、刷新插件列表 一个新插件的诞生 点击创建新插件可以在插件模板选择要写的插件类型和语言格式 点击创建后插件列表中就会出现刚刚创建的新插件。 这时候点击打开插件目录会发现原本空空的插件目录中多了一个刚刚新建的插件文件夹右键使用VSCode打开。 可以注意到目录下有两个文件“main.lua”和“package.json”。其中main.lua是插件的入口脚本package.json是插件的配置文件。 双击main.lua后可以看到“onDestroy”方法可以将之后的清理代码添加到此处。保存编写后的代码在编辑器中点击刷新插件列表可以将最新插件代码同步到编辑器。如果这时候编辑器保存如果不是代码书写错误可以通过重启编辑器进行刷新插件。 编辑器的个人常用API App是工程入口类类型CS.FairyEditor.App。通过LuaAPI中的CS_FairyEditor_App可以看到编辑器中的功能字段。下面将列出将要用的字段和方法。 CS.FairyEditor.App字段名类型作用projectCS.FairyEditor.FProject记录当前工程的配置和资源libViewCS.FairyEditor.View.LibraryView编辑器的资源库面板inspectorViewCS.FairyEditor.View.InspectorView编辑器的检查器面板consoleViewCS.FairyEditor.View.ConsoleView编辑器的控制台面板menuCS.FairyEditor.Component.IMenu编辑器的菜单栏pluginManagerCS.FairyEditor.PluginManager插件管理 CS.FairyEditor.FProject字段名类型作用namestring工程名“如FGUIProject”basePathstring工程的路径“如D:\Documents\FGUIProject”assetsPathstring工程的路径“如D:\Documents\FGUIProject\assets”allPackagesCS.FairyEditor.Fpackage[]工程中的所有包allBranchesstring[]工程中的所有分支 CS.FairyEditor.Fpackage字段名类型作用namestring当前包的名字itemsCS.FairyEditor.FPackageItem[]当前包下的资源 CS.FairyEditor.FPackageItem字段名类型作用pathstring资源路径namestring资源名 CS.FairyEditor.View.LibraryView字段名类型作用contextMenuCS.FairyEditor.Component.NPopupMenu资源库的右键菜单 CS.FairyEditor.Component.NPopupMenu方法名参数作用AddItemcaption:string, name:string, selectCallback:(fun():void)添加一个菜单项并设置选中回调事件AddSeperator添加菜单分割线SetItemGrayedstring name, bool grayed设置目标不能点击onPopupCS.FairyGUI.EventListener菜单弹出事件 开始编写插件代码 需求1 需求1在工具菜单中添加“导出所有UI名字”的菜单项点击后复制结果。 前提所有UI界面具有相同的命名规则这里我用的是UIXXX所以在获取所有UI的时候只需要检测当前文件的名字UI是否存在。在这个需求实现的功能中需要准备一个lua代码格式的文本代码之后会将classField替换为获取到的UI名。 local tmp_ui_type [[ ---class UIType return {classField } ]] 代码已经加了详细的注解可以直接查看完整代码 ---type CS.FairyEditor.App local _app CS.FairyEditor.App local project _app.project ---输出绝对文件路径 local file_out_path (%s/UIType.lua):format(project.basePath) ---Lua模板 local tmp_ui_type [[ ---class UIType return {classField } ]] ---获取工具菜单 ---type CS.FairyEditor.Component.MenuBar local toolMenu _app.menu:GetSubMenu(tool) ---添加分隔符 toolMenu:AddSeperator() ---添加菜单,显示名字内部标签名回调方法 toolMenu:AddItem(导出UIType,XiaoExportUIType,function()local _classField ---获取工程中的所有包返回值是列表local allPackages _app.project.allPackagesfor i 1, allPackages.Count do---C#索引从0开始---type CS.FairyEditor.FPackagelocal package allPackages[i - 1]---获取当前包中的所有子项返回值是列表local items package.itemsfor i 1, items.Count do---type CS.FairyEditor.FPackageItemlocal item items[i - 1]---记录所有UI开头的子项if string.find(item.name,UI) 1 thenlocal uiType string.format(%s %s_%s,\n\t,item.name,package.name,item.name)_classField _classField .. uiTypeendendend---输出日志打印fprint(_classField)---替换模板tmp_ui_type tmp_ui_type:gsub(classField,_classField)---写出模板local f io.open(file_out_path,w)f:write(tmp_ui_type)f:close()---输出路径打印fprint(string.format(导出UIType[url]%s[/url],file_out_path)) end) function onDestroy() -------do cleanup here-------toolMenu:RemoveItem(XiaoExportUIType) end需求2 需求2在资源库的右键菜单中添加“复制组件脚本路径”方便提取当前组件的require路径。并且实现组件筛选在不满足条件的情况下“复制组件脚本路径”菜单项置灰不可用。 前提所有非UI的组件都在当前包的Comps的文件夹下存放。 重新新建一个插件或者在之前的插件中继续编写这里我是接着之前的插件继续写。 ---添加资源库右键菜单 ---需求复制Comps文件夹下的组件所转化的脚本路径 ---获取右键菜单 local libcontextMenu _app.libView.contextMenu ---添加分割线 libcontextMenu:AddSeperator() libcontextMenu:AddItem(复制组件脚本路径,XiaoCopyAssetPath,function()---获取当前选中的资源---type CS.FairyEditor.FPackageItemlocal item _app.libView:GetSelectedResource()---检测资源是否满足条件if item.path:find(/Comps/) 1 then---准备复制local cp_str (require(\UI.%s.Comps.%s\)):format(item.owner.name,item.name)---Unity复制操作CS.UnityEngine.GUIUtility.systemCopyBuffer cp_str---弹窗提示_app.Alert(复制成功)else_app.Alert(复制失败)end end)---在弹出的菜单中检测当前选择的资源是否满足条件 libcontextMenu.onPopup:Add(function()---type CS.FairyEditor.FPackageItemlocal item _app.libView:GetSelectedResource()local grayed trueif item.path:find(/Comps/) 1 then-- bodygrayed falseendlibcontextMenu:SetItemGrayed(XiaoCopyAssetPath,grayed) end) 之后不要忘记在onDestroy方法中移除我们的菜单项“XiaoCopyAssetPath” toolMenu:RemoveItem(XiaoCopyAssetPath) 完整插件代码 ---type CS.FairyEditor.App local _app CS.FairyEditor.App local project _app.project---输出绝对文件路径 local file_out_path (%s/UIType.lua):format(project.basePath)---Lua模板 local tmp_ui_type [[ ---class UIType return {classField } ]]---获取工具菜单 ---type CS.FairyEditor.Component.MenuBar local toolMenu _app.menu:GetSubMenu(tool) ---添加分隔符 toolMenu:AddSeperator() ---添加菜单,显示名字内部标签名回调方法 toolMenu:AddItem(导出UIType,XiaoExportUIType,function()local _classField ---获取工程中的所有包返回值是列表local allPackages _app.project.allPackagesfor i 1, allPackages.Count do---C#索引从0开始---type CS.FairyEditor.FPackagelocal package allPackages[i - 1]---获取当前包中的所有子项返回值是列表local items package.itemsfor i 1, items.Count do---type CS.FairyEditor.FPackageItemlocal item items[i - 1]---记录所有UI开头的子项if string.find(item.name,UI) 1 thenlocal uiType string.format(%s %s_%s,\n\t,item.name,package.name,item.name)_classField _classField .. uiTypeendendend---输出日志打印fprint(_classField)---替换模板tmp_ui_type tmp_ui_type:gsub(classField,_classField)---写出模板local f io.open(file_out_path,w)f:write(tmp_ui_type)f:close()---输出路径打印fprint(string.format(导出UIType[url]%s[/url],file_out_path)) end)---添加资源库右键菜单 ---需求复制Comps文件夹下的组件所转化的脚本路径 ---获取右键菜单 local libcontextMenu _app.libView.contextMenu ---添加分割线 libcontextMenu:AddSeperator() libcontextMenu:AddItem(复制组件脚本路径,XiaoCopyAssetPath,function()---获取当前选中的资源---type CS.FairyEditor.FPackageItemlocal item _app.libView:GetSelectedResource()---检测资源是否满足条件if item.path:find(/Comps/) 1 then---准备复制local cp_str (require(\UI.%s.Comps.%s\)):format(item.owner.name,item.name)---Unity复制操作CS.UnityEngine.GUIUtility.systemCopyBuffer cp_str---弹窗提示_app.Alert(复制成功)else_app.Alert(复制失败)end end)---在弹出的菜单中检测当前选择的资源是否满足条件 libcontextMenu.onPopup:Add(function()---type CS.FairyEditor.FPackageItemlocal item _app.libView:GetSelectedResource()local grayed trueif item.path:find(/Comps/) 1 then-- bodygrayed falseendlibcontextMenu:SetItemGrayed(XiaoCopyAssetPath,grayed) end)function onDestroy() -------do cleanup here-------toolMenu:RemoveItem(XiaoExportUIType)toolMenu:RemoveItem(XiaoCopyAssetPath) end 菜单的操作目前只用到了这两种后面在实际操作中如果还有则会继续更新
http://www.hkea.cn/news/14513374/

相关文章:

  • seo建站是什么意思wordpress主题白屏
  • 带有flash的网站建设网站的建设费用包括哪些内容
  • 专业提供网站建设服务的企业公司做的网站访问很慢
  • 做网站搜索推广点击率太低怎么办西宁市城北区建设网站
  • 建设企业银行官方网站一个网站交互怎么做的
  • 兼职网站制作承接php网站建设
  • 分析建设网站的可行性wordpress安装2个网站吗
  • 厦门做网站的公司有哪些深圳推荐企业网站制作维护
  • 江门做网站微信短网址在线生成
  • 网站打开慢什么原因建设厅官方网站新资质标准
  • 深圳英迈思做网站好么me域名公司网站
  • nas搭建网站织梦儿童早教教育培训网站模板
  • 自助建站基础工作主要包括宁波专业seo服务
  • 合肥 网站建设重庆百度关键词优化软件
  • php网站修改主页内容诸城市房产信息网
  • wordpress 站群注意中山网站建设文化市场
  • 网站注册页面模板下载竞价推广教程
  • 医药加盟网站模板wordpress评论模版
  • 郑州做网站云极wordpress网站如何制作
  • 湖南中海建设集团有限公司网站网站搭建平台选哪个
  • 网站注册域名免费搭设企业网站教程
  • 公司做的局域网网站怎么登陆wordpress主题改字体
  • 网站建设费如何核算网站域名购买com
  • 公司宣传网站建设淮安做网站需要多少钱
  • 石家庄网站建设哪家便宜产品宣传推广策划
  • 做付费下载的网站番禺怎样优化网站建设
  • 个人网站开发背景及意义华军软件园下载中心
  • 简单的手机网站模板下载太原模板建站平台
  • wordpress门户网站模板wordpress搜视网
  • 个人公司网站怎么做如何建立网站服务器