功能标签

前言

Godot 有一个特殊的系统来标记功能的可用性。每个功能均表示为一个字符串,可以引用以下各项:

  • 平台名称。

  • 平台架构(64 位或 32 位,x86 或 ARM)。

  • 平台类型(桌面、移动、Web)。

  • 平台上支持的纹理压缩算法。

  • 构建是 debug 还是 releasedebug 包括编辑器)。

  • 项目是从编辑器运行还是从“独立”二进制文件运行。

  • 其他更多的东西。

可以在运行时通过调用以下功能从单例 API 查询功能:

OS.has_feature(name)

默认功能

这是 Godot 中大多数功能标签的列表。请记住它们区分大小写

功能标签

描述

Android

在 Android 上运行

HTML5

在 HTML5 上运行

JavaScript

JavaScript 单例可用

OSX

在 macOS 上运行

iOS

在 iOS 上运行

UWP

在 UWP 上运行

Windows

在 Windows 上运行

X11

在 X11 上运行(Linux/BSD 桌面)

Server

在无头服务器平台上运行

debug

在调试版本上运行(包括编辑器)

release

在发布版本上运行

editor

在编辑器构建上运行

standalone

在无编辑器构建上运行

64

在 64 位构建上运行(不限架构)

32

在 32 位构建上运行(不限架构)

x86_64

在 64 位 x86 架构构建上运行

x86

在 32 位 x86 架构构建上运行

arm64

在 64 位 ARM 架构构建上运行

arm

在 32 位 ARM 架构构建上运行

mobile

宿主操作系统是移动平台

pc

宿主操作系统是 PC 平台(台式机/笔记本电脑)

web

宿主操作系统是网页浏览器

etc

支持使用 ETC1 压缩的纹理

etc2

支持使用 ETC2 压缩的纹理

s3tc

支持使用 S3TC(DXT/BC)压缩的纹理

pvrtc

支持使用 PVRTC 压缩的纹理

警告

With the exception of texture compression feature tags, default feature tags are immutable. This means that they will not change depending on run-time conditions. For example, OS.has_feature("mobile") will return false when running a project exported to HTML5 on a mobile device.

To check whether a project exported to HTML5 is running on a mobile device, call JavaScript code that reads the browser's user agent.

自定义功能

可以向构建添加自定义功能;使用导出预设中用于生成它的相关字段:

../../_images/feature_tags1.png

备注

Custom feature tags are only used when running the exported project (including with 一键部署). They are not used when running the project from the editor, even if the export preset marked as Runnable for your current platform has custom feature tags defined.

覆盖项目设置

功能可用于覆盖项目设置中的特定配置值。这样可以在构建时更好地定制任意配置。

在下面的示例中,为游戏的演示版本添加了一个不同的图标(在特定的导出预设中进行了自定义,而该预设仅包含演示关卡)。

../../_images/feature_tags2.png

覆盖后, 将为此特定配置添加一个新字段:

../../_images/feature_tags3.png

备注

当使用项目设置的“override.cfg”功能时(与功能标签无关),记住功能标签仍然适用。因此,如果你想让它们覆盖所有平台和配置上的基本项目设置,请确保同时用所需的功能标签覆盖设置。

默认覆盖

默认情况下, 已有很多覆盖的设置;它们可以在项目设置的许多地方中找到.

../../_images/feature_tags4.png

自定义构建

通过编写自定义 ExportPlugin,功能标签也可以用于自定义构建过程。它们还用于指定在 GDNative 中加载和导出哪个共享库。