编辑器图标

When a new class is created and exposed to scripting, the editor's interface will display it with a default icon representing the base class it inherits from. In most cases, it's still recommended to create icons for new classes to improve the user experience.

创建图标

To create new icons, you first need a vector graphics editor installed. For instance, you can use the open source Inkscape editor.

Clone the godot repository containing all the editor icons:

git clone https://github.com/godotengine/godot.git

图标必须在矢量图形编辑器中以 SVG 格式创建。要遵循两个主要要求:

  • 图标必须是16×16。在Inkscape中,你可以在 文件>文档属性 中配置文档大小。

  • 线条应该尽可能地被捕捉到像素,以便在较低的DPI下保持清晰,你可以在Inkscape中创建一个16×16的网格来简化这个过程。

一旦你对图标的设计感到满意,就把图标保存在拷贝版本库的 editor/icons 文件夹中。图标的名称应该与预期的名称相匹配,并区分大小写。例如,要为CPUParticles2D创建一个图标,将文件命名为 CPUParticles2D.svg

灯光编辑器主题的颜色转换

如果用户将其编辑器配置为使用浅色主题,Godot将根据 一组预定义的颜色映射 来转换图标的颜色。这是为了确保图标始终以足够的对比度显示。尽量将图标的调色板限制在上面列表中的颜色。否则,您的图标在浅色背景下可能会变得难以预览。

图标优化

Because the editor renders SVGs once at load time, they need to be small in size so they can be efficiently parsed. Editor icons must be first optimized before being added to the engine, to do so:

  1. 发布选项卡 下载二进制文件,并将其放置在环境变量 PATH 中的一个位置, svgcleaner

  2. 运行下面的命令,将 svg_source.svg 替换为SVG文件的路径(可以是相对或绝对路径):

    svgcleaner --multipass svg_source.svg svg_optimized.svg
    

--multipass 开关可以提高压缩率,所以一定要包含它。优化后的图标将被保存为 svg_optimized.svg 。你也可以将目标参数改为相对或绝对路径。

注解

虽然这个优化步骤不会对图标的质量产生明显影响,但还是会删除指南等只属于编辑器的信息。因此,如果你需要做进一步的修改,建议将源SVG保留下来。

集成和分享图标

If you're contributing to the engine itself, you should make a pull request to add optimized icons to editor/icons in the main repository. Recompile the engine to make it pick up new icons for classes.

也可以在模块内创建自定义图标。如果您要创建自己的模块,并且不打算将其与Godot集成,则不需要单独的拉取请求即可在编辑器中使用图标,因为它们可以独立存在。

有关如何创建模块图标的特定说明,请参考 创建自定义模块图标

故障排除

If icons don't appear in the editor, make sure that:

  1. 每个图标的文件名都符合前面所述的命名要求。

  2. modules/svg is enabled (it should be enabled by default). Without it, icons won't appear in the editor at all.