EditorResourceTooltipPlugin

继承: RefCounted < Object

为处理的资源类型制作高阶工具提示的插件。

描述

FileSystemDock 使用的资源工具提示插件,能够为指定资源生成自定义工具提示。例如,Texture2D 的工具提示会显示较大的预览和该纹理的尺寸。

插件必须先使用 FileSystemDock.add_resource_tooltip_plugin 注册。用户悬停在文件系统面板中该插件能够处理的资源上时,就会调用 _make_tooltip_for_path 来创建工具提示。工作原理类似于 Control._make_custom_tooltip

方法

bool

_handles(type: String) virtual const

Control

_make_tooltip_for_path(path: String, metadata: Dictionary, base: Control) virtual const

void

request_thumbnail(path: String, control: TextureRect) const


方法说明

bool _handles(type: String) virtual const 🔗

如果插件要处理给定的 Resource 类型 type,则返回 true


Control _make_tooltip_for_path(path: String, metadata: Dictionary, base: Control) virtual const 🔗

创建并返回工具提示,会在用户悬停在文件系统面板上路径为 path 的资源上时显示。

元数据字典 metadata 由预览生成器提供(见 EditorResourcePreviewGenerator._generate)。

base 是基础的默认工具提示,是一个包含文件名、类型、大小标签的 VBoxContainer。如果其他插件也能够处理相同的文件类型,那么 base 就是上一个插件的输出。为了达到最佳效果,请确保基础工具提示是返回的 Control 的一部分。

注意:不建议使用 ResourceLoader.load,尤其是模型、纹理等开销较大的资源,否则会在创建工具提示时让编辑器失去响应。如果想要在工具提示中显示预览,可以使用 request_thumbnail

注意:如果你决定要丢弃 base,请确保调用了 Node.queue_free,否则不会自动释放。

  1. func _make_tooltip_for_path(path, metadata, base):
  2. var t_rect = TextureRect.new()
  3. request_thumbnail(path, t_rect)
  4. base.add_child(t_rect) # TextureRect 会出现在工具提示的底部。
  5. return base

void request_thumbnail(path: String, control: TextureRect) const 🔗

为给定的 TextureRect 请求缩略图。缩略图使用 EditorResourcePreview 异步创建,会在可用时自动设置。