增强资源管理器面板
若要自定义右击菜单,请先参考 新建一个插件,在插件的 文件中,通过定义 contributions.assets.menu
字段,即可对 资源管理器 面板的右击菜单显示事件进行监听,可以实现菜单的追加,如下所示:
各字段含义:
methods
- 菜单事件处理函数(示例中的on***Menu
系列)所在的脚本相对路径createMenu
- 创建资源 菜单显示时触发的事件,有两个触发时机:- 点击资源管理器面板左上角的 + 按钮
- 资源菜单中的 新建 菜单项被选中时
dbMenu
- 右击资源数据库根节点assets
时触发的事件assetMenu
- 右击普通资源节点或目录时触发的事件panelMenu
- 右击资源管理面板空白区域时触发的事件
生成 ./dist/assets-menu.js
文件的 assets-menu.ts
内容如下:
assets-menu.ts
中 on****Menu(assetInfo:AssetInfo):MenuItem[]
系列函数参数和返回值说明如下:
参数
AssetInfo
:{}displayName
:string - 资源用于显示的名字importer
:string - 导入器名字- :boolean - 是否是文件夹
imported
:boolean - 是否导入完成invalid
:boolean - 是否导入失败name
:string - 资源名字file
:string - 资源文件所在的磁盘绝对路径readonly
:boolean - 是否只读type
:string - 资源类型url
:string - db:// 开头的资源地址uuid
:string - 资源 ID
返回值 [
MenuItem
]type
:string - 可选,可选项分别为 normal、separator、submenu、checkbox 或 radiosublabel
:string - 可选,显示的二级文本submenu
:MenuItem[] - 可选,子项菜单click
:function - 可选,点击事件enabled
:boolean - 可选,是否可用,不可用会有置灰样式visible
:boolean - 可选,是否显示- :string - 可选,显示快捷键
-
更多属性可参考 electron menu-item 的数据格式。
示例中以 i18n:
开始的字符串,需要配置多语言相关内容,请参考。
最终实现效果如下图所示:
假设我们做了一个拥有若干资源的插件包,且有一个面板用于展示这些资源的图标。 我们希望实现将面板上的图标拖放到资源窗口时,即可将资源包中的资源拷贝到资源窗口。
在 Cocos Creator 插件中实现这个流程并不复杂。只需要定义一个 <ui-drag-item type="xxx">
UI 组件,自定义一个拖入类型,并注入到 资源管理器 面板的识别范围内。后续在编辑器其他面板将含有该自定义类型的 <ui-drag-item>
元素拖入 资源管理器 面板时,资源管理器 面板便能识别到它,并给自定义类型的注册方(插件)发送消息,注册方便能执行一个自定义的动作,比如执行新建一组资源。
在插件的
default
面板中加入dropAsset
方法,如下所示:assetInfo
参数说明:uuid
:string - 拖拽资源时,鼠标释放位置的资源 uuidtype
:string - 该资源的类型isDirectory
:boolean - 该资源是否是文件夹
在插件的
defualt
面板中加入ui-drag-item
UI 组件,如下所示:
执行效果如下图所示: