增强资源管理器面板

    若要自定义右击菜单,请先参考 新建一个插件,在插件的 文件中,通过定义 contributions.assets.menu 字段,即可对 资源管理器 面板的右击菜单显示事件进行监听,可以实现菜单的追加,如下所示:

    各字段含义:

    • methods - 菜单事件处理函数(示例中的 on***Menu 系列)所在的脚本相对路径
    • createMenu - 创建资源 菜单显示时触发的事件,有两个触发时机:
      • 点击资源管理器面板左上角的 + 按钮
      • 资源菜单中的 新建 菜单项被选中时
    • dbMenu - 右击资源数据库根节点 assets 时触发的事件
    • assetMenu - 右击普通资源节点或目录时触发的事件
    • panelMenu - 右击资源管理面板空白区域时触发的事件

    生成 ./dist/assets-menu.js 文件的 assets-menu.ts 内容如下:

    assets-menu.tson****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 或 radio
      • sublabel: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 - 拖拽资源时,鼠标释放位置的资源 uuid
      • type:string - 该资源的类型
      • isDirectory:boolean - 该资源是否是文件夹
    • 在插件的 defualt 面板中加入 ui-drag-item UI 组件,如下所示:

    执行效果如下图所示:

    extend-assets-drop