ProjectSettings
继承: Object
存储全局变量。
描述
储存可以从任何地方访问的变量。请使用 get_setting、set_setting、has_setting 访问。存储在 project.godot
中的变量也会被加载到 ProjectSettings 中,因此这个对象常用于读取自定义游戏配置选项。
指定“项目设置”的属性时,请使用设置的完整路径,包括类别。例如项目名称应使用 "application/config/name"
。类别和属性名称可以在“项目设置”对话框中查看。
特性标签:可以使用特性标签来针对特定的平台和配置(调试、发布……)做项目设置的覆盖。
覆盖:在项目的根目录下创建名为 override.cfg
的文件,就可以对任意项目设置进行覆盖。对于已导出的项目,把这个文件放在与项目二进制文件相同的目录下,也可以达到覆盖的目的。覆盖时仍会考虑基础项目设置的特性标签。因此,如果你想让它们在所有平台和配置上覆盖基础项目设置,请确保也用所需的特性标签覆盖该设置。
教程
属性
方法
void | add_property_info ( Dictionary hint ) |
void | |
get_setting ( String name, Variant default_value=null ) const | |
get_setting_with_override ( StringName name ) const | |
globalize_path ( String path ) const | |
has_setting ( String name ) const | |
load_resource_pack ( String pack, bool replace_files=true, int offset=0 ) | |
localize_path ( String path ) const | |
save ( ) | |
save_custom ( String file ) | |
void | set_as_basic ( String name, bool basic ) |
void | set_as_internal ( String name, bool internal ) |
void | set_initial_value ( String name, Variant value ) |
void | |
void | set_restart_if_changed ( String name, bool restart ) |
void | set_setting ( String name, Variant value ) |
信号
settings_changed ( )
任何设置项发生改变的时候发出,每个处理帧最多一次。
属性说明
Color application/boot_splash/bg_color = Color(0.14, 0.14, 0.14, 1)
启动界面的背景色。
bool application/boot_splash/fullsize = true
如果为 true
,引擎启动时会将启动界面图像缩放到整个窗口的大小(保持长宽比)。如果为 false
,引擎将保持其默认像素大小。
String application/boot_splash/image = ""
图像的路径,会作为启动画面使用。留空时将使用默认的 Godot 引擎启动画面。
注意:仅在 application/boot_splash/show_image 为 true
时有效。
注意:只支持 PNG 格式。使用其他图像格式会导致出错。
int application/boot_splash/minimum_display_time = 0
启动画面的最小显示时间(单位为毫秒)。不建议设置为过高的值。
bool application/boot_splash/show_image = true
如果为 true
,将在引擎启动时显示 application/boot_splash/image 所指定的图像。为 false
时,仅显示 application/boot_splash/bg_color 所指定的纯色。
bool application/boot_splash/use_filter = true
如果为 true
,则在缩放图像时会应用线性过滤(推荐用于高分辨率图稿)。如果为 false
,则使用最近邻插值(推荐用于像素画)。
bool application/config/auto_accept_quit = true
如果为 true
,则该应用程序会自动接受退出请求。
String application/config/custom_user_dir_name = ""
该用户目录用于存储持久数据(user://
文件系统)。如果定义了自定义目录名称,则该名称将被追加到系统特定的用户数据目录(与 OS.get_user_data_dir 中记录的 Godot 配置文件夹相同的父文件夹)。
application/config/use_custom_user_dir 设置必须被启用,该设置才能生效。
String application/config/description = ""
项目的描述,在项目管理器中悬停时显示为工具提示。
String application/config/icon = ""
项目所使用的图标,在项目加载时设置。导出器也会在必要时使用此图标作为回退。
String application/config/macos_native_icon = ""
设置 macOS 上游戏的图标,使用 .icns
图标集格式。启动时会通过调用 DisplayServer.set_native_icon 自动完成。
String application/config/name = ""
项目名称。会在项目管理器和导出器中使用。可以通过翻译本地化文件中的值来翻译项目名称。窗口标题将设置为在启动时自动匹配项目名称。
注意:如果 application/config/use_custom_user_dir 为 false
,更改此值也会更改用户数据文件夹的路径。重命名项目后,你将无法再访问 user://
中的现有数据,除非你重命名旧文件夹以匹配新项目名称。有关更多信息,请参阅文档中的 《数据路径》。
Dictionary application/config/name_localized = {}
项目名称的翻译。操作系统工具会使用此设置来翻译 Android、iOS 和 macOS 上的应用程序名称。
String application/config/project_settings_override = ""
指定一个文件来覆盖项目设置。例如:user://custom_settings.cfg
。参见 ProjectSettings 顶部类描述中的“Overriding”以获取更多信息。
注意:不管这个设置的值如何,res://override.cfg
仍然会被读取来覆盖项目设置。
bool application/config/quit_on_go_back = true
如果为 true
,则该应用程序会在导航返回时自动退出(例如在 Android 上使用系统“返回”键)。
bool application/config/use_custom_user_dir = false
如果为 true
,项目会将用户数据保存到它自己的用户目录中。如果 application/config/custom_user_dir_name 为空,将使用 <操作系统用户数据目录>/<项目名称>
目录。如果为 false
,项目会将用户数据保存到 <操作系统用户数据目录>/Godot/app_userdata/<项目名称>
。
另见 Godot 项目中的文件路径。该设置仅在桌面平台上有效。
bool application/config/use_hidden_project_data_directory = true
如果为 true
,该项目会使用隐藏目录(.godot
)来存储项目特定的数据(元数据、着色器缓存等)。
如果为 false
,将改用非隐藏目录(godot
)。
注意:请在更改此设置后重新启动应用程序。
注意:修改这个值可能有助于在禁止使用隐藏目录模式的平台或第三方工具上使用。但是,仅在你确定你的环境需要更改此设置时才进行修改,因为某些外部工具或插件可能使用默认的 .godot
文件夹,因此更改默认设置可能会影响它们的使用。
String application/config/version = ""
项目的人类可读版本标识符。如果导出器中没有覆盖版本标识符,就会使用这个标识符。如果 application/config/version 为空字符串,并且导出器中没有覆盖版本标识符,则导出器会使用 1.0.0
作为版本标识符。
String application/config/windows_native_icon = ""
设置 Windows 上游戏的图标,使用 .ico
图标集格式。启动时会通过调用 DisplayServer.set_native_icon 自动完成。
bool application/run/delta_smoothing = true
帧增量的时间样本可能会受到平台带来的随机影响,即使垂直同步能够让帧按照固定的间隔显示也无济于事。因此可能导致卡顿。增量平滑通常能够带来更好的效果,会通过过滤输入增量来修改刷新率带来的微小波动。
注意:只会在 display/window/vsync/vsync_mode 为 enabled
时尝试进行增量平滑,因为没有垂直同步时无法很好地工作。
最开始激活平滑前可能会需要有若干秒的稳定帧率。只会在性能足以让渲染帧与刷新率匹配的机器上激活。
bool application/run/disable_stderr = false
如果为 true
,则禁用打印到标准错误。如果为 true
,也会隐藏由 @GlobalScope.push_error 和 @GlobalScope.push_warning 打印的错误和警告消息。另见 application/run/disable_stdout。
对该设置项的更改将只在重新启动应用程序后生效。
bool application/run/disable_stdout = false
如果为 true
,则禁用打印到标准输出。相当于使用 --quiet
命令行参数启动编辑器或项目。另见 application/run/disable_stderr。
对该设置项的更改将只在重新启动应用程序后生效。
bool application/run/flush_stdout_on_print = false
如果为 true
,则每次打印一行时刷新标准输出流。这会影响终端日志记录和文件日志记录。
运行项目时,如果希望由 systemd/journalctl 等服务管理器收集日志,则必须启用此设置。默认情况下,在发布版本中禁用此设置,因为如果快速连续打印大量行,则在每个打印行上刷新都会对性能产生负面影响。此外,如果启用此设置,如果应用程序崩溃或以其他方式被用户杀死(不会“正常”关闭),则仍会成功写入日志文件。
注意:无论此设置如何,标准错误流 (stderr
) 在打印一行时总是被刷新。
对此设置的更改只会在重新启动应用程序时应用。
bool application/run/flush_stdout_on_print.debug = true
调试构建覆盖application/run/flush_stdout_on_print,因为在调试过程中性能不那么重要。
仅在重新启动应用程序时才会应用此设置的更改。
int application/run/frame_delay_msec = 0
强制主循环中的帧之间有恒定的延迟(以毫秒为单位)。在大多数情况下,应首选 application/run/max_fps 作为 FPS 限制器,因为它更精确。
可以使用 --frame-delay <ms;>
命令行参数覆盖该设置。
bool application/run/low_processor_mode = false
如果为 true
,则启用低处理器使用模式。此设置仅适用于桌面平台。如果视觉上没有任何变化,屏幕不会被重绘。这是为了编写应用程序和编辑器,但在大多数游戏中这是非常无用的(并可能损害性能)。
int application/run/low_processor_mode_sleep_usec = 6900
启用低处理器使用模式时帧间的睡眠量(以微秒计)。值越高,CPU占用率越低。
String application/run/main_loop_type = "SceneTree"
实现引擎主循环的类型名称。
String application/run/main_scene = ""
项目运行时将加载的主场景文件的路径。
int application/run/max_fps = 0
每秒允许的最大帧数。0
表示“不限制”。如果 CPU 或 GPU 无法满足项目逻辑和渲染,则实际每秒的帧数可能仍然比这个值小。
限制 FPS 可以降低系统对电源的消耗,能够降低发热、减少噪音(延长移动设备的电池寿命)。
display/window/vsync/vsync_mode 为 Enabled
或 Adaptive
时,该设置优先生效,强制的 FPS 数无法超过显示器的刷新率。
display/window/vsync/vsync_mode 为 Enabled
时,在启用了可变刷新率(G-Sync/FreeSync)的显示器上使用比显示器刷新率略低几帧的 FPS 限制会降低输入延迟,避免画面撕裂。
display/window/vsync/vsync_mode 为 Disabled
时,与不限制帧率相比,将 FPS 限制设为系统所能达到的较高值能够降低输入延迟。因为原理是确保 GPU 负载低于 100%,所以只有在 GPU 为瓶颈时才会降低延迟,无法缓解 CPU 瓶颈导致的延迟。
另见 physics/common/physics_ticks_per_second。
这个设置可以使用 --max-fps <fps>
命令行参数覆盖(设为 0
则是不限制帧率)。
注意:这个属性仅在项目启动时读取。要在运行时修改渲染 FPS 上限,请改为设置 Engine.max_fps。
float audio/buses/channel_disable_threshold_db = -60.0
当声音在给定的时间内低于给定的 dB 阈值时,音频总线将自动关闭。这可以节省 CPU,因为分配给该总线的效果将不再做任何处理。
float audio/buses/channel_disable_time = 2.0
当声音在给定的时间内低于给定的 dB 阈值时,音频总线将自动关闭。这可以节省 CPU,因为分配给该总线的效果将不再做任何处理。
String audio/buses/default_bus_layout = "res://default_bus_layout.tres"
项目中使用的默认 AudioBusLayout 资源文件,除非被场景覆盖。
String audio/driver/driver
指定要使用的音频驱动程序。这个设置与平台有关,因为不同的平台支持不同的音频驱动。如果留空,将使用默认的音频驱动程序。
Dummy
音频驱动程序会禁用所有的音频播放和录制,对非游戏应用程序很有用,因为会减少对 CPU 的使用。它还可以防止引擎作为正在播放音频的应用程序出现在操作系统的音频混合器中。
注意:运行时可以通过 --audio-driver
命令行参数覆盖所使用的驱动程序。
bool audio/driver/enable_input = false
如果为 true
,会允许麦克风输入。导出到 Android 和 iOS 时需要设置合适的权限。
注意:如果操作系统(根据该用户的隐私设置)阻止了对音频输入设备的访问,那么音频捕获只会返回静音。自 Windows 10 起,请确保在操作系统的隐私设置中允许应用对麦克风的访问。
int audio/driver/mix_rate = 44100
用于音频的混合率(单位:Hz)。一般来说,最好不要碰这个,把它留给主机操作系统。
int audio/driver/mix_rate.web = 0
audio/driver/mix_rate 在 Web 平台上更安全的覆盖项。这里的 0
表示“让浏览器选择”(因为有些浏览器不喜欢强制混合率)。
int audio/driver/output_latency = 15
指定音频的首选输出延迟,单位为毫秒。较低的值将导致较低的音频延迟,但会增加 CPU 使用率。低值可能会导致在较慢的硬件上发出可听见的破裂声。
音频输出延迟可能会受到主机操作系统和音频硬件驱动程序的限制。如果主机无法提供指定的音频输出延迟,那么 Godot 将尝试使用主机允许的最近延迟。因此,应该始终使用 AudioServer.get_output_latency 来确定实际的音频输出延迟。
音频输出延迟可以使用 --audio-output-latency <ms>
命令行参数覆盖。
注意:Android 以及 Windows 10 之前的所有版本都会忽略这个设置。
int audio/driver/output_latency.web = 50
audio/driver/output_latency 在 Web 平台上更安全的覆盖项,能够避免一些音频问题,尤其是在移动设备上。
float audio/general/2d_panning_strength = 0.5
所有 AudioStreamPlayer2D 节点的声像效果的基本强度。可以使用 AudioStreamPlayer2D.panning_strength 在每个节点上进一步缩放声像强度。0.0
的值会完全禁用立体声声像,只保留音量衰减。如果声音恰好位于听者的左侧(或右侧),则 1.0
的值会使其中一个通道完全静音。
0.5
的默认值是针对耳机进行调谐的。当使用扬声器时,可能会发现较低的值效果更好,因为与耳机相比,扬声器的立体声分离度较低。
float audio/general/3d_panning_strength = 0.5
所有 AudioStreamPlayer3D 节点的声像效果的基本强度。可以使用 AudioStreamPlayer3D.panning_strength 在每个节点上进一步缩放声像强度。0.0
的值会完全禁用立体声声像,只保留音量衰减。如果声音恰好位于听者的左侧(或右侧),则 1.0
的值会使其中一个通道完全静音。
0.5
的默认值是针对耳机进行调谐的。当使用扬声器时,可能会发现较低的值效果更好,因为与耳机相比,扬声器的立体声分离度较低。
bool audio/general/ios/mix_with_others = false
设置 iOS 的 AVAudioSession 的 mixWithOthers 选项。当类别为 Play and Record
、Playback
、Multi Route
时会覆盖混音行为。
Ambient
默认会设置这个选项。
int audio/general/ios/session_category = 0
设置 iOS 的 AVAudioSessionCategory。如果需要让手机在静音模式时也进行声音输出,请使用 Playback
类别。
bool audio/general/text_to_speech = false
如果为 true
,则启用文本转语音(Text-to-Speech,TTS)支持,见 DisplayServer.tts_get_voices 和 DisplayServer.tts_speak。
注意:启用 TTS 会增加空闲 CPU 的占用,影响睡眠模式,所以请在不需要 TTS 时考虑将其关闭。
int audio/video/video_delay_compensation_ms = 0
播放视频时设置为硬编码音频延迟。除非你知道自己在做什么,否则最好不要动它。
bool collada/use_ambient = false
如果为 true
,则 COLLADA 模型中的环境光源会被导入为 DirectionalLight3D。如果为 false
,则会忽略环境光源。
int compression/formats/gzip/compression_level = -1
gzip 的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文件变小。解压缩速度大多不受压缩级别的影响。-1
使用默认的 gzip 压缩级别,该级别与 6
相同,但由于底层 zlib 更新,未来可能会发生变化。
int compression/formats/zlib/compression_level = -1
Zlib 的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文件变小。解压缩速度大多不受压缩级别的影响。-1
使用默认的 gzip 压缩级别,该级别与 6
相同,但由于底层 zlib 更新,未来可能会发生变化。
int compression/formats/zstd/compression_level = 3
Zstandard 的默认压缩级别。影响压缩的场景和资源。较高的级别会以压缩速度为代价导致文件变小。解压缩速度大多不受压缩级别的影响。
bool compression/formats/zstd/long_distance_matching = false
启用 Zstandard 的长距离匹配。
int compression/formats/zstd/window_log_size = 27
使用 Zstandard 的长距离匹配进行压缩时,允许的最大大小限制(2 的幂)。更高的值可以产生更好的压缩,但是在压缩和解压缩时需要更多的内存。
Color debug/canvas_items/debug_redraw_color = Color(1, 0.2, 0.2, 0.5)
如果画布项重绘调试处于活动状态,则画布项重绘时会使用这个颜色进行闪光。
float debug/canvas_items/debug_redraw_time = 1.0
如果画布项重绘调试处于活动状态,则这个选项表示画布项每次重绘时闪光的持续时间。
bool debug/file_logging/enable_file_logging = false
如果为 true
,将所有输出记录到文件中。
bool debug/file_logging/enable_file_logging.pc = true
debug/file_logging/enable_file_logging 在桌面平台的覆盖项,因为在移动/Web 平台上不容易访问日志文件。
String debug/file_logging/log_path = "user://logs/godot.log"
项目日志的存储路径。建议使用 user://
下的路径。
int debug/file_logging/max_log_files = 5
指定允许的最大日志文件数量(用于轮换)。
int debug/gdscript/warnings/assert_always_false = 1
设为 warn
或 error
时,会在 assert
调用永远求值为 false 时对应产生警告或错误。
int debug/gdscript/warnings/assert_always_true = 1
设为 warn
或 error
时,会在 assert
调用永远求值为 true 时对应产生警告或错误。
int debug/gdscript/warnings/confusable_identifier = 1
设为 warn
或 error
时,会在标识符中的字符可能与其他东西产生混淆时对应产生警告或错误,例如混用不同的字母表。
int debug/gdscript/warnings/confusable_local_declaration = 1
设为 warn
或 error
时,会在嵌套块中声明的标识符与父块中下面声明的标识符同名时,分别产生警告或错误。
int debug/gdscript/warnings/confusable_local_usage = 1
设为 warn
或 error
时,会在该块下的一个将被隐藏的标识符被使用时,分别产生警告或错误。
int debug/gdscript/warnings/constant_used_as_function = 1
设为 warn
或 error
时,会在将常量当作函数使用时对应产生警告或错误。
int debug/gdscript/warnings/deprecated_keyword = 1
设为 warn
或 error
时,会在使用已启用的关键字时对应产生警告或错误。
int debug/gdscript/warnings/empty_file = 1
设为 warn
或 error
时,会在解析空文件时对应产生警告或错误。
bool debug/gdscript/warnings/enable = true
如果为 true
,则启用特定的 GDScript 警告(请参阅 debug/gdscript/warnings/*
设置)。如果为 false
,则禁用所有 GDScript 警告。
bool debug/gdscript/warnings/exclude_addons = true
如果为 true
,则 res://addons
文件夹中的脚本不会生成警告。
int debug/gdscript/warnings/function_used_as_property = 1
设置为 warn
或 error
时,当函数作为属性使用时会分别产生一个警告或一个错误。
int debug/gdscript/warnings/get_node_default_without_onready = 2
设置为 warn
或 error
时,当 Node.get_node(或简写 $
)被用作一个没有 @onready
注解的类变量的默认值时,会分别产生一个警告或一个错误 。
int debug/gdscript/warnings/incompatible_ternary = 1
设置为 warn
或 error
时,当三元运算符可能发出具有不兼容类型的值时,分别产生一个警告或一个错误。
int debug/gdscript/warnings/inference_on_variant = 2
设置为 warn
或 error
时,当静态推断类型使用一个 Variant 作为初始值时,这使得静态类型也成为 Variant,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/inferred_declaration = 0
设置为 warn
或 error
时,当变量、常量、或参数具有隐式推断的静态类型时,分别产生警告或错误。
注意:如果你希望始终显式指定类型,则推荐该警告,除了 debug/gdscript/warnings/untyped_declaration。使 INFERRED_DECLARATION
警告级别高于 UNTYPED_DECLARATION
警告级别意义不大,且不被推荐。
int debug/gdscript/warnings/int_as_enum_without_cast = 1
设置为 warn
或 error
时,当尝试将整数用作没有显式转换的枚举时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/int_as_enum_without_match = 1
设置为 warn
或 error
时,当在尝试将整数用作枚举,且没有与该数值匹配的枚举成员时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/integer_division = 1
设置为 warn
或 error
时,当一个整数除以另一个整数时(小数部分将被丢弃),会分别产生一个警告或一个错误。
int debug/gdscript/warnings/narrowing_conversion = 1
设置为 warn
或 error
时,在将浮点值传递给需要整数的函数时(它将被转换并失去精度),会分别产生一个警告或一个错误。
int debug/gdscript/warnings/native_method_override = 2
设置为 warn
或 error
时,当脚本中的方法覆盖本地方法,因为它可能不会按预期运行时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/onready_with_export = 2
设置为 warn
或 error
时,当 @onready
注解与 @export
注解一起使用时,因为它可能不会按预期运行,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/property_used_as_function = 1
设置为 warn
或 error
时,当像函数一样使用一个属性时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/redundant_await = 1
设置为 warn
或 error
时,当使用 await 调用一个非协程的函数时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/redundant_static_unload = 1
设为 warn
或 error
时,会在 @static_unload
注解用于不包含任何静态变量的脚本时对应产生警告或错误。
bool debug/gdscript/warnings/renamed_in_godot_4_hint = 1
启用后,使用自 Godot 3 以来重命名的属性、枚举或函数,将在发生错误时产生一个提示。
int debug/gdscript/warnings/return_value_discarded = 0
设置为 warn
或 error
时,当调用函数却不使用其返回值(通过将其分配给变量或将其用作函数参数)时,会分别产生一个警告或一个错误。此类返回值有时使用 Error 枚举,用于表示可能的错误。
int debug/gdscript/warnings/shadowed_global_identifier = 1
设置为 warn
或 error
时,当定义一个与内置函数或全局类同名的局部变量或成员变量、信号、或枚举,从而隐藏该内置函数或全局类时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/shadowed_variable = 1
设置为 warn
或 error
时,当定义一个局部变量或成员变量,且该变量将隐藏该类定义的成员变量时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/shadowed_variable_base_class = 1
设置为 warn
或 error
时,当定义一个局部变量或子类成员变量,且该变量将隐藏从父类继承的变量时,将分别产生一个警告或一个错误。
int debug/gdscript/warnings/standalone_expression = 1
设置为 warn
或 error
时,当调用对周围代码没有影响的表达式,例如将 2 + 2
写为语句时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/standalone_ternary = 1
设置为 warn
或 error
时,当调用对周围代码没有影响的三元表达式,例如将 42 if active else 0
写为语句时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/static_called_on_instance = 1
设置为 warn
或 error
时,当从类的实例而不是直接从类调用静态方法时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unassigned_variable = 1
设置为 warn
或 error
时,当使用以前未分配的变量时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unassigned_variable_op_assign = 1
设置为 warn
或 error
时,当使用 +=
等赋值运算符分配一个变量,且该变量以前未分配时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unreachable_code = 1
设置为 warn
或 error
时,当检测到无法访问的代码(例如始终在 return
语句之后被执行的代码)时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unreachable_pattern = 1
设置为 warn
或 error
时,当检测到无法到达的 match
模式时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unsafe_call_argument = 0
设置为 warn
或 error
时,当使用类型可能与函数参数预期的类型不兼容的表达式时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unsafe_cast = 0
设置为 warn
或 error
时,当执行不安全的转换时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unsafe_method_access = 0
设置为 warn
或 error
时,当调用类中不能保证在编译时存在的方法时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unsafe_property_access = 0
设置为 warn
或 error
时,当访问类中不能保证在编译时存在的属性时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unsafe_void_return = 1
设置为 warn
或 error
时,当从 void
函数返回一个调用,且无法保证该调用也是 void
时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/untyped_declaration = 0
设置为 warn
或 error
时,当变量或参数没有静态类型,或函数没有静态返回类型时,会分别产生一个警告或一个错误。
注意:建议将该警告与 EditorSettings.text_editor/completion/add_type_hints 一起使用,以帮助实现类型安全。
int debug/gdscript/warnings/unused_local_constant = 1
设置为 warn
或 error
时,当一个局部常量从未被使用时,分别产生一个警告或一个错误。
int debug/gdscript/warnings/unused_parameter = 1
设置为 warn
或 error
时,当一个函数参数从未使用时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unused_private_class_variable = 1
设置为 warn
或 error
时,当一个私有成员变量从未被使用时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unused_signal = 1
设置为 warn
或 error
时,当一个信号被声明但从未发出时,会分别产生一个警告或一个错误。
int debug/gdscript/warnings/unused_variable = 1
设置为 warn
或 error
时,当一个局部变量未被使用时,会分别产生一个警告或一个错误。
String debug/settings/crash_handler/message = "Please include this when reporting the bug to the project developer."
引擎崩溃时,在回溯之前显示的消息。默认情况下,由于仅限编辑器的覆盖会应用于该设置,故该消息仅用于导出的项目中。
String debug/settings/crash_handler/message.editor = "Please include this when reporting the bug on: https://github.com/godotengine/godot/issues"
debug/settings/crash_handler/message 的仅限编辑器的覆盖。不会影响以调试或发布模式导出的项目。
int debug/settings/gdscript/max_call_stack = 1024
调试 GDScript 时允许的最大调用堆栈。
int debug/settings/profiler/max_functions = 16384
分析时单帧允许的最大函数数量。
bool debug/settings/stdout/print_fps = false
每秒将帧率打印到标准输出。
bool debug/settings/stdout/print_gpu_profile = false
每秒将 GPU 配置文件信息打印到标准输出。这包括平均每帧需要 GPU 渲染多长时间,细分为渲染管道的不同步骤,例如 CanvasItems、阴影、辉光等。
bool debug/settings/stdout/verbose_stdout = false
运行时将更多信息打印到标准输出。它显示诸如内存泄漏、正在加载哪些场景和资源等信息。这也可以使用 --verbose
或 -v
命令行参数来启用,即使在导出的项目中也是如此。另见 OS.is_stdout_verbose and @GlobalScope.print_verbose。
bool debug/shader_language/warnings/device_limit_exceeded = true
设为 true
时,当着色器超出设备极限时会产生警告。目前唯一检测的设备极限是 Uniform 缓冲的大小。未来会加入更多设备极限。
bool debug/shader_language/warnings/enable = true
如果为 true
,则启用特定的着色器警告(请参阅 debug/shader_language/warnings/*
设置)。如果为 false
,则禁用所有着色器警告。
bool debug/shader_language/warnings/float_comparison = true
设为 true
时,当使用 ==
或 !=
运算符直接比较两个浮点数时,会产生警告。
bool debug/shader_language/warnings/formatting_error = true
设为 true
时,当遇到格式错误时会产生警告。目前唯一检测的是空语句。未来可能加入更多格式错误。
bool debug/shader_language/warnings/treat_warnings_as_errors = false
设为 true
时,会将警告作为错误对待。
bool debug/shader_language/warnings/unused_constant = true
设为 true
时,当从未使用某个常量时会产生警告。
bool debug/shader_language/warnings/unused_function = true
设为 true
时,当从未使用某个函数时会产生警告。
bool debug/shader_language/warnings/unused_local_variable = true
设为 true
时,当从未使用某个局部变量时会产生警告。
bool debug/shader_language/warnings/unused_struct = true
设为 true
时,当从未使用某个结构体时会产生警告。
bool debug/shader_language/warnings/unused_uniform = true
设为 true
时,当从未使用某个 uniform 时会产生警告。
bool debug/shader_language/warnings/unused_varying = true
设为 true
时,当从未使用某个 varying 时会产生警告。
Color debug/shapes/avoidance/agents_radius_color = Color(1, 1, 0, 0.25)
避障代理半径的颜色,在“调试”菜单中启用“显示避障”时可见。
bool debug/shapes/avoidance/enable_agents_radius = true
如果处于启用状态,会在启用“调试”菜单中的“显示避障”时显示避障代理的半径。
bool debug/shapes/avoidance/enable_obstacles_radius = true
如果处于启用状态,会在启用“调试”菜单中的“显示避障”时显示避障障碍物的半径。
bool debug/shapes/avoidance/enable_obstacles_static = true
如果处于启用状态,会在启用“调试”菜单中的“显示避障”时显示静态避障障碍物。
Color debug/shapes/avoidance/obstacles_radius_color = Color(1, 0.5, 0, 0.25)
避障障碍物半径的颜色,在调试菜单中启用“显示避障”时可见。
Color debug/shapes/avoidance/obstacles_static_edge_pushin_color = Color(1, 0, 0, 1)
静态障碍物的顶点缠绕顺序会将代理推入时,障碍物边的颜色,在调试菜单中启用“显示避障”时可见。
Color debug/shapes/avoidance/obstacles_static_edge_pushout_color = Color(1, 1, 0, 1)
静态障碍物的顶点缠绕顺序会将代理推出时,障碍物边的颜色,在调试菜单中启用“显示避障”时可见。
Color debug/shapes/avoidance/obstacles_static_face_pushin_color = Color(1, 0, 0, 0)
静态障碍物的顶点缠绕顺序会将代理推入时,障碍物面的颜色,在调试菜单中启用“显示避障”时可见。
Color debug/shapes/avoidance/obstacles_static_face_pushout_color = Color(1, 1, 0, 0.5)
静态障碍物的顶点缠绕顺序会将代理推出时,障碍物面的颜色,在调试菜单中启用“显示避障”时可见。
Color debug/shapes/collision/contact_color = Color(1, 0.2, 0.1, 0.8)
碰撞形状之间接触点的颜色,在调试菜单中启用“显示碰撞形状”时可见。
bool debug/shapes/collision/draw_2d_outlines = true
设置当调试菜单中的启用“显示碰撞形状”时,2D 物理是否会在游戏中显示碰撞轮廓。
int debug/shapes/collision/max_contacts_displayed = 10000
当在调试菜单中启用“显示碰撞形状”时,碰撞形状之间显示的最大接触点数。
Color debug/shapes/collision/shape_color = Color(0, 0.6, 0.7, 0.42)
碰撞形状的颜色,当在调试菜单中启用“显示碰撞形状”时可见。
Color debug/shapes/navigation/agent_path_color = Color(1, 0, 0, 1)
用于显示已启用的导航代理路径的颜色,代理启用调试时生效。
float debug/shapes/navigation/agent_path_point_size = 4.0
栅格大小(像素),如果导航代理启用了调试,则会用于渲染该代理的路径点。
Color debug/shapes/navigation/edge_connection_color = Color(1, 0, 1, 1)
用于显示导航区域之间的边缘连接的颜色,在“调试”菜单中,启用“可见导航”时可见。
bool debug/shapes/navigation/enable_agent_paths = true
如果处于启用状态,会在导航代理启用调试时显示其路径。
bool debug/shapes/navigation/enable_agent_paths_xray = true
如果处于启用状态,会在导航代理启用调试时透过几何体显示其路径。
bool debug/shapes/navigation/enable_edge_connections = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时显示导航地区之间的边缘连接。
bool debug/shapes/navigation/enable_edge_connections_xray = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时透过几何体显示导航地区之间的边缘连接。
bool debug/shapes/navigation/enable_edge_lines = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时显示导航网格多边形的边缘。
bool debug/shapes/navigation/enable_edge_lines_xray = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时透过几何体显示导航网格多边形的边缘。
bool debug/shapes/navigation/enable_geometry_face_random_color = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时为每个导航网格多边形面使用随机颜色着色。
bool debug/shapes/navigation/enable_link_connections = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时显示导航链接的连接。
bool debug/shapes/navigation/enable_link_connections_xray = true
如果处于启用状态,会在启用“调试”菜单中的“显示导航”时透过几何体显示导航链接的连接。
Color debug/shapes/navigation/geometry_edge_color = Color(0.5, 1, 1, 1)
用于显示已启用导航网格多边形边缘的颜色,在“调试”菜单中启用“显示导航”时可见。
Color debug/shapes/navigation/geometry_edge_disabled_color = Color(0.5, 0.5, 0.5, 1)
用于显示已禁用导航网格多边形边缘的颜色,在“调试”菜单中启用“显示导航”时可见。
Color debug/shapes/navigation/geometry_face_color = Color(0.5, 1, 1, 0.4)
用于显示已启用导航网格多边形面的颜色,在“调试”菜单中启用“显示导航”时可见。
Color debug/shapes/navigation/geometry_face_disabled_color = Color(0.5, 0.5, 0.5, 0.4)
用于显示已禁用导航网格多边形面的颜色,在“调试”菜单中启用“显示导航”时可见。
Color debug/shapes/navigation/link_connection_color = Color(1, 0.5, 1, 1)
导航链接连接的颜色,在调试菜单中启用“显示导航”时可见。
Color debug/shapes/navigation/link_connection_disabled_color = Color(0.5, 0.5, 0.5, 1)
被禁用的导航链接连接的颜色,在调试菜单中启用“显示导航”时可见。
Color debug/shapes/paths/geometry_color = Color(0.1, 1, 0.7, 0.4)
曲线路径几何图形的颜色,在“调试”菜单中启用“可见路径”时可见。
float debug/shapes/paths/geometry_width = 2.0
曲线路径几何图形的线宽,在“调试”菜单中启用“可见路径”时可见。
String display/mouse_cursor/custom_image = ""
鼠标光标的自定义图像(最大 256×256)。
Vector2 display/mouse_cursor/custom_image_hotspot = Vector2(0, 0)
自定义鼠标光标图像的热点。
Vector2 display/mouse_cursor/tooltip_position_offset = Vector2(10, 10)
工具提示相对于鼠标光标热点的位置偏移量。
bool display/window/dpi/allow_hidpi = true
如果为 true
,则允许在 Windows、macOS、Android、iOS 和 Web 上使用 HiDPI 显示器。如果为 false
,则在 HiDPI 显示器上将使用该平台的低 DPI 回退,这样会导致窗口模糊或像素化的方式显示(并且可能导致各种窗口管理问题)。因此,建议你让项目支持多个分辨率,而不是禁用此设置。
注意:这个设置在 Linux 上无效,因为 Linux 不支持 DPI 感知回退。
bool display/window/energy_saving/keep_screen_on = true
如果为 true
,则保持屏幕打开(即使在不活动的情况下),因此屏幕保护程序不会接管。适用于桌面和移动平台。
bool display/window/energy_saving/keep_screen_on.editor = false
display/window/energy_saving/keep_screen_on 的编辑器覆盖项。不影响调试模式和发布模式下导出的项目。
int display/window/handheld/orientation = 0
在移动设备上使用的默认屏幕朝向。可能的取值见 ScreenOrientation。
注意:设为竖屏时,该项目设置不会自动翻转项目分辨率的宽度和高度。你必须设置与之相对应的 display/window/size/viewport_width 和 display/window/size/viewport_height。
bool display/window/ios/allow_high_refresh_rate = true
如果为 true
,则允许支持高刷新率“ProMotion”的 iOS 设备以每秒 120 帧的速度渲染。
bool display/window/ios/hide_home_indicator = true
如果为 true
,home 指示器将自动隐藏。这只会影响没有物理 home 键的 iOS 设备。
bool display/window/ios/hide_status_bar = true
如果为 true
,则状态栏将在应用程序运行时隐藏。
bool display/window/ios/suppress_ui_gesture = true
如果为 true
,则需要两次滑动才能访问使用手势的 iOS UI。
注意:如果 hide_home_indicator
为 true
,则该设置对 home 指示器没有影响。
bool display/window/per_pixel_transparency/allowed = false
如果为 true
,则允许窗口背景的逐像素透明度。这样会影响性能,因此除非需要,否则请将其保留为 false
。另见 display/window/size/transparent 和 rendering/viewport/transparent_background。
bool display/window/size/always_on_top = false
强制主窗口始终置顶。
注意:该设置在 iOS、Android 和 Web 上被忽略。
bool display/window/size/borderless = false
强制主窗口无边框。
注意:该设置在 iOS、Android 和 Web 上被忽略。
bool display/window/size/extend_to_title = false
主窗口的内容会扩展到整个窗口的大小。与无边框窗口不同的是,窗口的框架仍是完整的,可以用来调整窗口的大小,标题栏是透明的,但有最小/最大/关闭按钮。
注意:该设置只在 macOS 上实现。
Vector2i display/window/size/initial_position = Vector2i(0, 0)
主窗口的初始位置(使用虚拟桌面坐标),该设置仅在 display/window/size/initial_position_type 设置为“Absolute”(0
)时使用。
int display/window/size/initial_position_type = 1
主窗口的初始位置。
0
- “Absolute(绝对位置)”,窗口位置用 display/window/size/initial_position 设置。
1
- “Primary Screen Center(主屏幕中心)”。
2
- “Other Screen Center(其他屏幕中心)”, 屏幕用 display/window/size/initial_screen 设置。
int display/window/size/initial_screen = 0
主窗口的初始屏幕,该设置仅在 display/window/size/initial_position_type 设置为“Other Screen Center”(2
)时使用。
int display/window/size/mode = 0
主窗口的模式。可能的取值以及各个模式的行为请参阅 WindowMode。
bool display/window/size/no_focus = false
主窗口无法成为焦点。无焦点的窗口将忽略除鼠标点击之外的所有输入。
bool display/window/size/resizable = true
允许窗口默认可调整大小。
注意:这个设置在 iOS 上将忽略。
bool display/window/size/transparent = false
如果为 true
,则启用窗口管理器提示,表示主窗口背景能够透明。这并不会让背景变得透明。要让背景变透明,根视口必须也通过启用 rendering/viewport/transparent_background 来变得透明。
注意:要使用透明的启动画面,请将 application/boot_splash/bg_color 设为 Color(0, 0, 0, 0)
。
注意:如果 display/window/per_pixel_transparency/allowed 为 false
,则这个设置项无效。
int display/window/size/viewport_height = 648
设置游戏的主视口高度。在桌面平台上,这也是初始窗口高度,在 2D 编辑器中使用靛蓝色的矩形表示。使用 canvas_items
和 viewport
拉伸模式时也会以此作为参考。另见 display/window/size/viewport_width、display/window/size/window_width_override 和 display/window/size/window_height_override。
int display/window/size/viewport_width = 1152
设置游戏的主视口宽度。在桌面平台上,这也是初始窗口宽度,在 2D 编辑器中使用靛蓝色的矩形表示。使用 canvas_items
和 viewport
拉伸模式时也会以此作为参考。另见 display/window/size/viewport_height、display/window/size/window_width_override 和 display/window/size/window_height_override。
int display/window/size/window_height_override = 0
在桌面平台上,覆盖游戏的初始窗口高度。另见 display/window/size/window_width_override、display/window/size/viewport_width 和 display/window/size/viewport_height。
注意:默认情况下,或者当设置为0
时,初始窗口高度为 display/window/size/viewport_height。在 iOS、Android 和 Web 上会忽略这个设置。
int display/window/size/window_width_override = 0
在桌面平台上,覆盖游戏的初始窗口宽度。另见 display/window/size/window_height_override、display/window/size/viewport_width 和 display/window/size/viewport_height。
注意:默认情况下,或者当设置为 0
时,初始窗口宽度为 display/window/size/viewport_width。在 iOS、Android 和 Web 上会忽略该设置。
String display/window/stretch/aspect = "keep"
目前没有这个属性的描述。请帮我们贡献一个!
String display/window/stretch/mode = "disabled"
定义如何将基础大小进行拉伸,从而适应窗口或屏幕的分辨率。
“disabled”:不进行拉伸。场景中的一个单位对应屏幕上的一个像素。display/window/stretch/aspect 在该模式下无效。推荐非游戏应用程序使用。
“canvas_items”:将项目设置中指定的基础大小拉伸至覆盖整个屏幕(会考虑 display/window/stretch/aspect)。这样所有东西都是直接按照目标分辨率渲染的。3D 不受影响,但在 2D 中精灵的像素和屏幕像素就不再是 1:1 的关系了,缩放可能导致画面问题。推荐大多数非像素风的游戏使用,但像素风游戏也是可以使用该拉伸模式的(尤其是 3D)。
“viewport”:将根 Viewport 的大小设为项目设置中“显示”部分中指定的基础大小。场景会现在这个视口中渲染。最终会将该视口缩放至适合屏幕的尺寸(会考虑 display/window/stretch/aspect)。推荐像素风游戏使用。
float display/window/stretch/scale = 1.0
2D 元素缩放系数的乘数。这个乘数会与由 display/window/stretch/mode 决定的最终缩放系数相乘。如果使用的是 Disabled 拉伸模式,那么这个缩放系数是原样使用的。可以通过调节这个数值来让 UI 则某些屏幕上更易于阅读。
String display/window/stretch/scale_mode = "fractional"
决定 2D 元素最终缩放系数的策略。会影响 display/window/stretch/scale 的使用,与 display/window/stretch/mode 决定的自动缩放系数共同生效。
“fractional”:小数。不改变缩放系数。
“integer”:整数。将缩放系数向下取整,屏幕大小始终为基础视口大小的整数倍。能够显示锐利的像素风画面。
注意:使用整数缩放并设置拉伸模式时,将窗口大小调整得比基础视口大小更小会将内容进行裁剪。请考虑将 Window.min_size 设为与 display/window/size/viewport_width 和 display/window/size/viewport_height 定义的基础视口大小一致,避免这种情况的发生。
bool display/window/subwindows/embed_subwindows = true
如果为 true
则子窗口是嵌入到主窗口中的。
int display/window/vsync/vsync_mode = 1
设置游戏主窗口的垂直同步模式。
请参阅 VSyncMode 了解可能的值以及它们如何影响应用程序的行为。
根据平台和所使用的渲染器,如果不支持所需的模式,引擎将回退到 Enabled。
注意:除 Enabled 以外的垂直同步模式仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。
注意:这个属性只在项目启动时读取。要在运行时改变垂直同步模式,请改为调用 DisplayServer.window_set_vsync_mode。
String dotnet/project/assembly_name = ""
.NET 程序集的名称。这个名称会被用作 .csproj
和 .sln
文件的名称。默认情况下,它被设置为项目的名称(application/config/name),这样将来进行修改时就不会影响 .NET 程序集。
int dotnet/project/assembly_reload_attempts = 3
重新构建 .NET 程序集后尝试重新加载程序集的次数。实际也是等待脚本程序集卸载完成的超时秒数。
String dotnet/project/solution_directory = ""
包含 .sln
文件的目录。默认情况下,.sln
文件在项目目录的根部,和 project.godot
和 .csproj
文件在同一个目录。
改变这个值可以设置包含多个 .csproj
的多项目方案。请记住,Godot 项目被认为是工作空间中的 C# 项目之一,根目录应该包含 project.godot
和.csproj
。
bool editor/export/convert_text_resources_to_binary = true
如果为 true
,则导出时会将文本格式的资源转换为二进制格式。这样能够减小文件大小,略微加快加载速度。
注意:如果 editor/export/convert_text_resources_to_binary 为 true
,则 @GDScript.load 无法在导出后的项目中读取已转换的文件。导出后的 PCK 中,部分文件的路径也会改变,例如 project.godot
会变成 project.binary
。如果你需要在运行时加载存在于 PCK 中的文件,请将 editor/export/convert_text_resources_to_binary 设置为 false
。
bool editor/import/reimport_missing_imported_files = true
目前没有这个属性的描述。请帮我们贡献一个!
bool editor/import/use_multiple_threads = true
如果为 true
,则会多线程执行资源的导入。
bool editor/movie_writer/disable_vsync = false
如果为 true
,则在写入电影时会请求禁用垂直同步(类似于将 display/window/vsync/vsync_mode 设置为 Disabled)。如果硬件的渲染速度足够快,那么就可以加速视频的写入,以高于显示器刷新率的帧速率渲染、编码和保存视频。
注意:如果操作系统或图形驱动程序强制垂直同步,则应用程序无法禁用,editor/movie_writer/disable_vsync 无效。
int editor/movie_writer/fps = 60
输出电影时,在视频中每秒记录的帧数。仿真速度将调整为始终与指定的帧数相匹配,这意味着引擎在较高的 editor/movie_writer/fps 值下会显得运行较慢。部分 FPS 值将需要你调整 editor/movie_writer/mix_rate,防止音频随着时间的推移而出现不同步。
可以在命令行中使用 --fixed-fps <fps>
命令行参数手动指定。
int editor/movie_writer/mix_rate = 48000
写入影片时,录制的音频所使用的音频混合采样率(单位为 Hz)。可以和 audio/driver/mix_rate 不同,但这个值必须能够被 editor/movie_writer/fps 整除,从而防止音频可能逐渐不同步的问题。
float editor/movie_writer/mjpeg_quality = 0.75
JPEG 质量,将视频写入 AVI 文件时使用,介于 0.01
和 1.0
(含)之间。quality
值越高,输出效果越好看,但文件大小也越大。quality
的推荐值为 0.75
和 0.9
之间。即使质量为 1.0
,JPEG 压缩仍然有损。
注意:这不会影响音频质量和 PNG 图像序列的写入。
String editor/movie_writer/movie_file = ""
影片的输出路径。文件扩展名决定要使用的 MovieWriter。
Godot 有两个内置的 MovieWriter:
AVI 容器,视频使用 MJPEG、音频未压缩(文件扩展名为
.avi
)。有损压缩,文件大小中等,编码较快。有损压缩质量可以通过 editor/movie_writer/mjpeg_quality 调整。得到的文件可以使用大多数视频播放器查看,但必须转换成其他格式才能在 Web 或 Godot 的 VideoStreamPlayer 中播放。MJPEG 不支持透明度。AVI 输出目前有单文件 4 GB 的大小限制。视频使用 PNG 图像序列,音频使用 WAV(文件扩展名为
.png
)。无损压缩,文件大小较大,编码较慢。旨在录制后使用 FFmpeg 等其他工具编码为视频文件。目前不支持透明度,即便将根视口设为透明也不行。
如果需要编码为其他格式,或者将流导入至第三方软件,你可以扩展 MovieWriter 类,创建自己的影片写入器。
使用 PNG 输出时,帧号将附加在文件名末尾。帧号从 0 开始,会补齐至 8 位数字,从而确保能够正确排序,处理起来也更方便。例如,如果输出路径为 /tmp/hello.png
,那么前两帧就是 /tmp/hello00000000.png
和 /tmp/hello00000001.png
。音频将保存在 /tmp/hello.wav
。
int editor/movie_writer/speaker_mode = 0
保存电影时,录制的音频中所使用的扬声器模式。可能的值见 SpeakerMode。
String editor/naming/default_signal_callback_name = "_on_{node_name}_{signal_name}"
信号回调名称的默认格式(在信号连接对话框中使用)。可以使用以下替换:{NodeName}
、{nodeName}
、{node_name}
、{SignalName}
、{signalName}
、{signal_name}
。
String editor/naming/default_signal_callback_to_self_name = "_on_{signal_name}"
信号回调名称的默认格式,用于连接到与发出信号相同节点的情况(在信号连接对话框中使用)。可以使用以下替换:{NodeName}
、{nodeName}
、{node_name}
、{SignalName}
、{signalName}
、{signal_name}
。
int editor/naming/node_name_casing = 0
当自动创建节点名称时,在这个项目中设置大小写的类型。这主要是编辑器设置。
int editor/naming/node_name_num_separator = 0
用什么来分隔节点名称和编号。这主要是一个编辑器的设置。
int editor/naming/scene_name_casing = 2
根据场景根节点生成文件名时,设置这个项目中的大小写类型。主要是编辑器设置。
String editor/run/main_run_args = ""
运行项目时附加到 Godot 自己的命令行的命令行参数。这不会影响编辑器本身。
可以使用 %command%
占位符使另一个可执行文件运行 Godot。占位符将替换为 Godot 自己的命令行。程序特定的参数应该放在占位符之前,而 Godot 特定参数应该放在占位符之后。
例如,这可用于强制项目在 Linux 上的 NVIDIA Optimus 系统中的专用 GPU 上运行:
prime-run %command%
PackedStringArray editor/script/search_in_file_extensions = PackedStringArray("gd", "gdshader")
脚本编辑器的“在文件中查找”特性中包含的基于文本的文件扩展名。你可以添加例如 tscn
,如果你也想解析你的场景文件,特别是如果你使用的是在场景文件中序列化的内置脚本。
String editor/script/templates_search_path = "res://script_templates"
对于项目特定的脚本模板的搜索路径。Godot 将在编辑器的特定路径和此项目的路径中搜索。
bool editor/version_control/autoload_on_startup = false
目前没有这个属性的描述。请帮我们贡献一个!
String editor/version_control/plugin_name = ""
目前没有这个属性的描述。请帮我们贡献一个!
bool filesystem/import/blender/enabled = true
如果为 true
,扩展名为 .blend
的 Blender 3D 场景文件会通过转换为 glTF 2.0 来导入。
需要在编辑器设置 filesystem/import/blender/blender3_path
中,配置 Blender 可执行文件的路径。需要 Blender 3.0 或更高版本。
bool filesystem/import/blender/enabled.android = false
filesystem/import/blender/enabled 在 Android 上的覆盖项,Godot 无法轻易访问到 Blender。
bool filesystem/import/blender/enabled.web = false
filesystem/import/blender/enabled 在 Web 上的覆盖项,Godot 无法轻易访问到 Blender。
bool filesystem/import/fbx/enabled = true
如果为 true
,扩展名为 .fbx
的 Autodesk FBX 3D 场景文件会通过转换为 glTF 2.0 来导入。
需要在编辑器设置 filesystem/import/blender/fbx2gltf_path
中,配置 FBX2glTF 可执行文件的路径。
bool filesystem/import/fbx/enabled.android = false
filesystem/import/fbx/enabled 在 Android 上的覆盖项,Godot 无法轻易访问到 FBX2glTF。
bool filesystem/import/fbx/enabled.web = false
filesystem/import/fbx/enabled 在 Web 上的覆盖项,Godot 无法轻易访问到 FBX2glTF。
int gui/common/default_scroll_deadzone = 0
ScrollContainer.scroll_deadzone,它将用于所有 ScrollContainer,除非fug。
bool gui/common/snap_controls_to_pixels = true
如果为 true
,则将 Control 节点的顶点吸附到最近的像素,确保即便相机发生移动或缩放也能够保持锐利。
bool gui/common/swap_cancel_ok
如果为 true
,则会在 Windows 上交换对话框中的确定和取消按钮,从而遵循界面规范。可以使用 DisplayServer.get_swap_cancel_ok 查询运行时是否交换这两个按钮。
注意:由 DisplayServer.dialog_show 等生成的原生对话框不受影响。
int gui/common/text_edit_undo_stack_max_size = 1024
TextEdit 字段的最大撤销/重做历史大小。
bool gui/fonts/dynamic_fonts/use_oversampling = true
目前没有这个属性的描述。请帮我们贡献一个!
String gui/theme/custom = ""
Theme 资源文件的路径,用于自定义项目主题(扩展名为 .theme
或通用的 .tres
/.res
)。
String gui/theme/custom_font = ""
自定义 Font 资源的路径,用作项目中所有 GUI 元素的默认字体。
int gui/theme/default_font_antialiasing = 1
默认项目字体的字体抗锯齿模式。见 FontFile.antialiasing。
注意:这项设置不影响项目中使用的自定义 Font。请改用导入面板(见 ResourceImporterDynamicFont.antialiasing)。
bool gui/theme/default_font_generate_mipmaps = false
如果设置为 true
,则默认字体将生成 mipmap。这样可以防止文本在 Control 被按比例缩小或从远距离查看 Label3D 时看起来有颗粒感(如果 Label3D.texture_filter 设置为显示 mipmap 的模式)。
启用 gui/theme/default_font_generate_mipmaps 会增加字体生成时间和内存使用量。请只在你确实需要时才启用此设置。
注意:此设置不会影响项目中使用的自定义 Font。这种情况下请改用导入面板(见 ResourceImporterDynamicFont.generate_mipmaps)。
int gui/theme/default_font_hinting = 1
默认项目字体的字体微调模式。见 FontFile.hinting。
注意:这项设置不影响项目中使用的自定义 Font。请改用导入面板(见 ResourceImporterDynamicFont.hinting)。
bool gui/theme/default_font_multichannel_signed_distance_field = false
如果设置为 true
,默认字体将使用多通道带符号距离场(MSDF),任何尺寸都能够进行清晰的渲染。由于这种方法不需要在每次字体大小更改时都对字体进行光栅化,因此可以实时调整字体大小,不会造成任何性能损失。对于按比例缩小的 Control(或从远距离查看的 Label3D),文本也不会看起来有颗粒感。
MSDF 字体渲染可以与 gui/theme/default_font_generate_mipmaps 结合使用,从而进一步提高缩小时的字体渲染质量。
注意:此设置不会影响项目中使用的自定义 Font。这种情况下请改用导入面板(见 ResourceImporterDynamicFont.multichannel_signed_distance_field)。
int gui/theme/default_font_subpixel_positioning = 1
默认项目字体的字体字形次像素定位模式。见 FontFile.subpixel_positioning。
注意:这项设置不影响项目中使用的自定义 Font。请改用导入面板(见 ResourceImporterDynamicFont.subpixel_positioning)。
float gui/theme/default_theme_scale = 1.0
Theme 中没有覆盖缩放系数时,Control 的默认缩放系数。
注意:这个属性只在项目启动时读取。要在运行时改变默认缩放,请改为设置 ThemeDB.fallback_base_scale。
int gui/theme/lcd_subpixel_layout = 1
LCD 次像素布局,用于字体抗锯齿。见 FontLCDSubpixelLayout。
float gui/timers/button_shortcut_feedback_highlight_time = 0.2
启用 BaseButton.shortcut_feedback 时,按下快捷键后 BaseButton 保持高亮的时间。
int gui/timers/incremental_search_max_interval_msec = 2000
在 Tree、ItemList 等控件中为增量搜索设置计时器(单位为毫秒)。
float gui/timers/text_edit_idle_detect_sec = 3
检测 TextEdit 空闲的计时器(单位为秒)。
float gui/timers/tooltip_delay_sec = 0.5
工具提示的默认延迟(单位为秒)。
Dictionary input/ui_accept
默认 InputEventAction,用于确认焦点按钮、菜单或列表项,或用于验证输入。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_cancel
默认 InputEventAction,用于放弃模态或挂起的输入。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_copy
默认 InputEventAction,用于将选中内容复制到剪贴板。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_cut
默认 InputEventAction,用于将选中内容剪切到剪贴板。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_down
默认 InputEventAction,用于在 UI 中向下移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_end
默认 InputEventAction,用于前往 Control 的末尾(例如 ItemList 和 Tree 中的最后一个项目),与常见桌面 UI 系统中 @GlobalScope.KEY_END 的 行为一致。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_filedialog_refresh
默认 InputEventAction,用于刷新 FileDialog 中当前目录的内容。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_filedialog_show_hidden
默认 InputEventAction,用于开关 FileDialog 中隐藏文件和目录的显示。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_filedialog_up_one_level
默认 InputEventAction,用于在 FileDialog 前往上一级目录。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_focus_next
默认 InputEventAction,用于聚焦场景中的下一个 Control。聚焦行为可以通过 Control.focus_next 配置。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_focus_prev
默认 InputEventAction,用于聚焦场景中的上一个 Control。聚焦行为可以通过 Control.focus_previous 配置。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_graph_delete
默认 InputEventAction,用于删除 GraphEdit 中的某个 GraphNode。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_graph_duplicate
默认 InputEventAction,用于制作 GraphEdit 中某个 GraphNode 的副本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_home
默认 InputEventAction,用于前往 Control 的开头(例如 ItemList 和 Tree 中的第一个项目),与常见桌面 UI 系统中 @GlobalScope.KEY_HOME 的 行为一致。
注意:默认的 ui_*
动作不能被删除,因为它们是几个 Control 的内部逻辑所必需的。然而,分配给动作的事件可以被修改。
Dictionary input/ui_left
默认 InputEventAction,用于在 UI 中向左移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_menu
默认 InputEventAction,用于在文本字段中打开上下文菜单。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_page_down
默认 InputEventAction,用于在 Control(例如 ItemList 和 Tree)中向下翻页,与常见桌面 UI 系统中 @GlobalScope.KEY_PAGEDOWN 的 行为一致。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_page_up
默认 InputEventAction,用于在 Control(例如 ItemList 和 Tree)中向上翻页,与常见桌面 UI 系统中 @GlobalScope.KEY_PAGEUP 的 行为一致。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_paste
默认 InputEventAction,用于从剪贴板粘贴内容。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_redo
默认 InputEventAction,用于重做被撤销的动作。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_right
默认 InputEventAction,用于在 UI 中向右移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_select
默认 InputEventAction,用于在 Control(例如 ItemList 和 Tree)中选中项目。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_swap_input_direction
默认 InputEventAction,用于交换输入方向,例如在“从左至右”和“从右至左”模式之间切换。影响文本编辑控件(LineEdit、TextEdit)。
Dictionary input/ui_text_add_selection_for_next_occurrence
如果文本字段的最近一个光标处存在选中的文本,则会搜索所选内容下一次出现的位置,在那个位置添加一个光标,然后选中该处的内容。
如果文本字段的最近一个光标处没有选中文本,则会选中当前光标下的单词。
该动作可以连续执行,选中最近一个光标所选文本的所有出现位置,所有现存光标均适用。
视口会根据最近新添加的文本光标进行调整。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_backspace
默认 InputEventAction,用于删除文本光标前的字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_backspace_all_to_left
默认 InputEventAction,用于删除文本光标前的所有文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_backspace_all_to_left.macos
针对 macOS 的快捷键覆盖项,对应删除文本光标前所有文本的快捷键。
Dictionary input/ui_text_backspace_word
默认 InputEventAction,用于删除光标前、空白或标点字符后的所有字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_backspace_word.macos
针对 macOS 的快捷键覆盖项,对应删除单词的快捷键。
Dictionary input/ui_text_caret_add_above
默认 InputEventAction,用于在文本中各个光标上方再添加一个光标。
Dictionary input/ui_text_caret_add_above.macos
针对 macOS 的快捷键覆盖项,对应在各个光标上方再添加一个光标的快捷键。
Dictionary input/ui_text_caret_add_below
默认 InputEventAction,用于在文本中各个光标下方再添加一个光标。
Dictionary input/ui_text_caret_add_below.macos
针对 macOS 的快捷键覆盖项,对应在各个光标下方再添加一个光标的快捷键。
Dictionary input/ui_text_caret_document_end
默认 InputEventAction,用于将文本光标移动到文本的末尾。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_document_end.macos
针对 macOS 的快捷键覆盖项,对应将文本光标移动到文本末尾的快捷键。
Dictionary input/ui_text_caret_document_start
默认 InputEventAction,用于将文本光标移动到文本的开头。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_document_start.macos
针对 macOS 的快捷键覆盖项,对应将文本光标移动到文本开头的快捷键。
Dictionary input/ui_text_caret_down
默认 InputEventAction,用于将文本光标向下移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_left
默认 InputEventAction,用于将文本光标向左移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_line_end
默认 InputEventAction,用于将文本光标移动到该行的末尾。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_line_end.macos
针对 macOS 的快捷键覆盖项,对应将文本光标移动到改行末尾的快捷键。
Dictionary input/ui_text_caret_line_start
默认 InputEventAction,用于将文本光标移动到该行的开头。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_line_start.macos
针对 macOS 的快捷键覆盖项,对应将文本光标移动到改行开头的快捷键。
Dictionary input/ui_text_caret_page_down
默认 InputEventAction,用于将文本光标向下移动一页。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_page_up
默认 InputEventAction,用于将文本光标向上移动一页。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_right
默认 InputEventAction,用于将文本光标向右移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_up
默认 InputEventAction,用于将文本光标向上移动。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_word_left
默认 InputEventAction,用于将文本光标向左移动到最近的空白或标点字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_word_left.macos
针对 macOS 的快捷键覆盖项,对应将文本光标向后移动一个单词的快捷键。
Dictionary input/ui_text_caret_word_right
默认 InputEventAction,用于将文本光标向右移动到最近的空白或标点字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_caret_word_right.macos
针对 macOS 的快捷键覆盖项,对应将文本光标向前移动一个单词的快捷键。
Dictionary input/ui_text_clear_carets_and_selection
如果处于活动状态并且有选区的光标只有一个,则清除该选区。
如果有多个光标处于活动状态,请移除次要光标并清除其选区。
注意:默认的 ui_*
动作无法移除,因为它们对于部分 Control 的内部逻辑是必需的。但是,可以修改分配给该动作的事件。
Dictionary input/ui_text_completion_accept
默认 InputEventAction,用于接受某个自动补全提示。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_completion_query
默认 InputEventAction,用于请求自动补全。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_completion_replace
默认 InputEventAction,用于接受某个自动补全提示并替换现有文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_dedent
默认 InputEventAction,用于取消文本缩进。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_delete
默认 InputEventAction,用于删除文本光标后的字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_delete_all_to_right
默认 InputEventAction,用于删除文本光标后的所有文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_delete_all_to_right.macos
针对 macOS 的快捷键覆盖项,对应删除文本光标后所有文本的快捷键。
Dictionary input/ui_text_delete_word
默认 InputEventAction,用于删除光标后、空白或标点字符前的所有字符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_delete_word.macos
针对 macOS 的快捷键覆盖项,对应删除文本光标前的单词的快捷键。
Dictionary input/ui_text_indent
默认 InputEventAction,用于缩进当前行。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_newline
默认 InputEventAction,用于在文本光标处插入换行。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_newline_above
默认 InputEventAction,用于在当前行之前插入一个空行。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_newline_blank
默认 InputEventAction,用于在当前行之后插入一个空行。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_scroll_down
默认 InputEventAction,用于向下滚动一行文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_scroll_down.macos
针对 macOS 的快捷键覆盖项,对应向下滚动一行的快捷键。
Dictionary input/ui_text_scroll_up
默认 InputEventAction,用于向上滚动一行文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_scroll_up.macos
针对 macOS 的快捷键覆盖项,对应向上滚动一行的快捷键。
Dictionary input/ui_text_select_all
默认 InputEventAction,用于全选文本。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_select_word_under_caret
如果文本框中当前没有选中文本,则选中文本光标下的单词。如果有当前选中的文本,则取消选中。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_select_word_under_caret.macos
针对 macOS 的快捷键覆盖项,对应选中光标处单词的快捷键。
Dictionary input/ui_text_submit
默认 InputEventAction,用于提交文本字段。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_text_toggle_insert_mode
默认 InputEventAction,用于开关文本字段的插入模式。在插入模式中,插入新的文本会覆盖光标后的字符,除非下一个字符是换行符。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_undo
默认 InputEventAction,用于撤销最近的动作。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
Dictionary input/ui_up
默认在 UI 中向上移动InputEventAction。
注意:默认的 ui_*
动作是部分 Control 的内部逻辑所必需的,无法删除。但是可以修改分配给该动作的事件。
bool input_devices/buffering/agile_event_flushing = false
如果为 true
,按键/触摸/操纵杆事件将在每个空闲帧和物理帧之前刷新。
如果为 false
,该类事件将在引擎迭代之间的每个进程帧中仅刷新一次。
启用该功能可以极大地提高对输入的响应能力,特别是在每个可见(进程)帧需要运行多个物理帧的设备中,因为它们无法以目标帧速率运行。
注意:目前只在 Android 上实现。
bool input_devices/compatibility/legacy_just_pressed_behavior = false
如果为 true
,则 Input.is_action_just_pressed 和 Input.is_action_just_released 只有在动作仍然处于相应状态时返回 true
,也就是说,会忽略在同一帧按下并释放的动作。
如果为 false
,则不会丢失任何输入。
注意:几乎所有情况下都应该优先设置为 false
。旧有行为的用途是支持老项目,这样不需要修改脚本就可以使用以前的逻辑。
String input_devices/pen_tablet/driver
指定要使用的平板驱动。如果留空,则会使用默认驱动。
注意:所使用的驱动可以通过 --tablet-driver
命令行参数在运行时进行覆盖。
String input_devices/pen_tablet/driver.windows
input_devices/pen_tablet/driver 针对 Windows 的覆盖项。
bool input_devices/pointing/android/enable_long_press_as_right_click = false
如果为 true
,则在 Android 触摸屏上的长按事件会被转换为右键单击事件。
bool input_devices/pointing/android/enable_pan_and_scale_gestures = false
如果为 true
,则会在 Android 设备上启用多点平移和缩放手势。
bool input_devices/pointing/emulate_mouse_from_touch = true
如果为 true
,则在点击或滑动触摸屏时发送鼠标输入事件。
bool input_devices/pointing/emulate_touch_from_mouse = false
如果为 true
,则在点击或拖动鼠标时发送触摸输入事件。
String internationalization/locale/fallback = "en"
如果给定语言的翻译不可用,则使用默认区域设置。如果留空,将使用 en
,即英文。
bool internationalization/locale/include_text_server_data = false
如果为 true
,则文本服务器中断迭代规则集、字典、和其他可选数据将被包含在导出的项目中。
注意:“ICU / HarfBuzz / Graphite”文本服务器数据,包括缅甸语、汉语、日语、高棉语、老挝语和泰语的词典,以及 Unicode 标准附件 #29 和 Unicode 标准附件 #14 单词和行折断规则。数据大约 4 MB。
注意:“后备”文本服务器不使用额外数据。
String internationalization/locale/test = ""
如果不为空,那么当从编辑器中运行项目时,将使用该区域设置。
bool internationalization/pseudolocalization/double_vowels = false
进行伪本地化时,重复字符串中的元音字母,模拟由于本地化而造成的文本加长。
float internationalization/pseudolocalization/expansion_ratio = 0.0
进行伪本地化时的扩展比率。取 0.3
能够适应大部分实际使用,会将每个字符串加长 30%。
bool internationalization/pseudolocalization/fake_bidi = false
如果为 true
,则在启用伪本地化时模拟双向(从右至左)文本。可用于发现 RTL 布局和 UI 镜像问题,如果项目本地化为阿拉伯语或希伯来语等 RTL 语言,则会出现这些问题。
bool internationalization/pseudolocalization/override = false
将字符串中的所有字符替换为 *
。用于查找不可本地化的字符串。
String internationalization/pseudolocalization/prefix = "["
将被前置到伪本地化字符串的前缀。
bool internationalization/pseudolocalization/replace_with_accents = true
进行伪本地化时,将所有字符替换为其重音变体。
bool internationalization/pseudolocalization/skip_placeholders = true
进行伪本地化时,跳过 %s
或 %f
等用于字符串格式的占位符。有助于识别需要额外的控制字符才能正确显示的字符串。
String internationalization/pseudolocalization/suffix = "]"
将被追加到伪本地化字符串的后缀。
bool internationalization/pseudolocalization/use_pseudolocalization = false
如果为 true
,则为项目启用伪本地化。这可用于发现,一旦项目被本地化为字符串比源语言更长的语言时,可能出现的无法翻译的字符串或布局问题。
注意:只有在项目启动时该属性才会被读取。要在运行时切换伪本地化,请改用 TranslationServer.pseudolocalization_enabled。
bool internationalization/rendering/force_right_to_left_layout_direction = false
强制所有控件的布局方向和文本书写方向为 RTL。
int internationalization/rendering/root_node_layout_direction = 0
根节点的默认布局方向。
String internationalization/rendering/text_driver = ""
指定要使用的 TextServer。如果留空,则会使用默认服务器。
“ICU / HarfBuzz / Graphite”是最先进的文本驱动,支持从右至左的排版和复杂文字(用于阿拉伯语、希伯来语等语言)。“Fallback”文本驱动不支持从右至左的排版和复杂文字。
注意:在运行时可以通过 --text-driver
命令行参数覆盖使用的驱动程序。
注意:另外还提供了 Dummy
文本驱动,它禁用了所有文本渲染和字体相关的功能。这个驱动没有在项目设置中列出,但可以在运行编辑器或项目时使用 --text-driver Dummy
命令行参数启用。
String layer_names/2d_navigation/layer_1 = ""
2D 导航层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/2d_navigation/layer_2 = ""
2D 导航层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/2d_navigation/layer_3 = ""
2D 导航层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/2d_navigation/layer_4 = ""
2D 导航层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/2d_navigation/layer_5 = ""
2D 导航层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/2d_navigation/layer_6 = ""
2D 导航层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/2d_navigation/layer_7 = ""
2D 导航层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/2d_navigation/layer_8 = ""
2D 导航层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/2d_navigation/layer_9 = ""
2D 导航层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/2d_navigation/layer_10 = ""
2D 导航层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/2d_navigation/layer_11 = ""
2D 导航层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/2d_navigation/layer_12 = ""
2D 导航层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/2d_navigation/layer_13 = ""
2D 导航层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/2d_navigation/layer_14 = ""
2D 导航层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/2d_navigation/layer_15 = ""
2D 导航层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/2d_navigation/layer_16 = ""
2D 导航层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/2d_navigation/layer_17 = ""
2D 导航层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/2d_navigation/layer_18 = ""
2D 导航层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/2d_navigation/layer_19 = ""
2D 导航层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/2d_navigation/layer_20 = ""
2D 导航层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/2d_navigation/layer_21 = ""
2D 导航层 21 的可选名称。留空则会显示为“层 21”。
String layer_names/2d_navigation/layer_22 = ""
2D 导航层 22 的可选名称。留空则会显示为“层 22”。
String layer_names/2d_navigation/layer_23 = ""
2D 导航层 23 的可选名称。留空则会显示为“层 23”。
String layer_names/2d_navigation/layer_24 = ""
2D 导航层 24 的可选名称。留空则会显示为“层 24”。
String layer_names/2d_navigation/layer_25 = ""
2D 导航层 25 的可选名称。留空则会显示为“层 25”。
String layer_names/2d_navigation/layer_26 = ""
2D 导航层 26 的可选名称。留空则会显示为“层 26”。
String layer_names/2d_navigation/layer_27 = ""
2D 导航层 27 的可选名称。留空则会显示为“层 27”。
String layer_names/2d_navigation/layer_28 = ""
2D 导航层 28 的可选名称。留空则会显示为“层 28”。
String layer_names/2d_navigation/layer_29 = ""
2D 导航层 29 的可选名称。留空则会显示为“层 29”。
String layer_names/2d_navigation/layer_30 = ""
2D 导航层 30 的可选名称。留空则会显示为“层 30”。
String layer_names/2d_navigation/layer_31 = ""
2D 导航层 31 的可选名称。留空则会显示为“层 31”。
String layer_names/2d_navigation/layer_32 = ""
2D 导航层 32 的可选名称。留空则会显示为“层 32”。
String layer_names/2d_physics/layer_1 = ""
2D 物理层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/2d_physics/layer_2 = ""
2D 物理层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/2d_physics/layer_3 = ""
2D 物理层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/2d_physics/layer_4 = ""
2D 物理层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/2d_physics/layer_5 = ""
2D 物理层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/2d_physics/layer_6 = ""
2D 物理层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/2d_physics/layer_7 = ""
2D 物理层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/2d_physics/layer_8 = ""
2D 物理层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/2d_physics/layer_9 = ""
2D 物理层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/2d_physics/layer_10 = ""
2D 物理层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/2d_physics/layer_11 = ""
2D 物理层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/2d_physics/layer_12 = ""
2D 物理层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/2d_physics/layer_13 = ""
2D 物理层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/2d_physics/layer_14 = ""
2D 物理层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/2d_physics/layer_15 = ""
2D 物理层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/2d_physics/layer_16 = ""
2D 物理层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/2d_physics/layer_17 = ""
2D 物理层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/2d_physics/layer_18 = ""
2D 物理层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/2d_physics/layer_19 = ""
2D 物理层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/2d_physics/layer_20 = ""
2D 物理层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/2d_physics/layer_21 = ""
2D 物理层 21 的可选名称。留空则会显示为“层 21”。
String layer_names/2d_physics/layer_22 = ""
2D 物理层 22 的可选名称。留空则会显示为“层 22”。
String layer_names/2d_physics/layer_23 = ""
2D 物理层 23 的可选名称。留空则会显示为“层 23”。
String layer_names/2d_physics/layer_24 = ""
2D 物理层 24 的可选名称。留空则会显示为“层 24”。
String layer_names/2d_physics/layer_25 = ""
2D 物理层 25 的可选名称。留空则会显示为“层 25”。
String layer_names/2d_physics/layer_26 = ""
2D 物理层 26 的可选名称。留空则会显示为“层 26”。
String layer_names/2d_physics/layer_27 = ""
2D 物理层 27 的可选名称。留空则会显示为“层 27”。
String layer_names/2d_physics/layer_28 = ""
2D 物理层 28 的可选名称。留空则会显示为“层 28”。
String layer_names/2d_physics/layer_29 = ""
2D 物理层 29 的可选名称。留空则会显示为“层 29”。
String layer_names/2d_physics/layer_30 = ""
2D 物理层 30 的可选名称。留空则会显示为“层 30”。
String layer_names/2d_physics/layer_31 = ""
2D 物理层 31 的可选名称。留空则会显示为“层 31”。
String layer_names/2d_physics/layer_32 = ""
2D 物理层 32 的可选名称。留空则会显示为“层 32”。
String layer_names/2d_render/layer_1 = ""
2D 渲染层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/2d_render/layer_2 = ""
2D 渲染层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/2d_render/layer_3 = ""
2D 渲染层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/2d_render/layer_4 = ""
2D 渲染层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/2d_render/layer_5 = ""
2D 渲染层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/2d_render/layer_6 = ""
2D 渲染层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/2d_render/layer_7 = ""
2D 渲染层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/2d_render/layer_8 = ""
2D 渲染层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/2d_render/layer_9 = ""
2D 渲染层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/2d_render/layer_10 = ""
2D 渲染层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/2d_render/layer_11 = ""
2D 渲染层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/2d_render/layer_12 = ""
2D 渲染层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/2d_render/layer_13 = ""
2D 渲染层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/2d_render/layer_14 = ""
2D 渲染层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/2d_render/layer_15 = ""
2D 渲染层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/2d_render/layer_16 = ""
2D 渲染层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/2d_render/layer_17 = ""
2D 渲染层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/2d_render/layer_18 = ""
2D 渲染层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/2d_render/layer_19 = ""
2D 渲染层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/2d_render/layer_20 = ""
2D 渲染层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/3d_navigation/layer_1 = ""
3D 导航层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/3d_navigation/layer_2 = ""
3D 导航层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/3d_navigation/layer_3 = ""
3D 导航层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/3d_navigation/layer_4 = ""
3D 导航层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/3d_navigation/layer_5 = ""
3D 导航层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/3d_navigation/layer_6 = ""
3D 导航层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/3d_navigation/layer_7 = ""
3D 导航层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/3d_navigation/layer_8 = ""
3D 导航层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/3d_navigation/layer_9 = ""
3D 导航层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/3d_navigation/layer_10 = ""
3D 导航层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/3d_navigation/layer_11 = ""
3D 导航层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/3d_navigation/layer_12 = ""
3D 导航层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/3d_navigation/layer_13 = ""
3D 导航层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/3d_navigation/layer_14 = ""
3D 导航层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/3d_navigation/layer_15 = ""
3D 导航层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/3d_navigation/layer_16 = ""
3D 导航层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/3d_navigation/layer_17 = ""
3D 导航层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/3d_navigation/layer_18 = ""
3D 导航层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/3d_navigation/layer_19 = ""
3D 导航层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/3d_navigation/layer_20 = ""
3D 导航层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/3d_navigation/layer_21 = ""
3D 导航层 21 的可选名称。留空则会显示为“层 21”。
String layer_names/3d_navigation/layer_22 = ""
3D 导航层 22 的可选名称。留空则会显示为“层 22”。
String layer_names/3d_navigation/layer_23 = ""
3D 导航层 23 的可选名称。留空则会显示为“层 23”。
String layer_names/3d_navigation/layer_24 = ""
3D 导航层 24 的可选名称。留空则会显示为“层 24”。
String layer_names/3d_navigation/layer_25 = ""
3D 导航层 25 的可选名称。留空则会显示为“层 25”。
String layer_names/3d_navigation/layer_26 = ""
3D 导航层 26 的可选名称。留空则会显示为“层 26”。
String layer_names/3d_navigation/layer_27 = ""
3D 导航层 27 的可选名称。留空则会显示为“层 27”。
String layer_names/3d_navigation/layer_28 = ""
3D 导航层 28 的可选名称。留空则会显示为“层 28”。
String layer_names/3d_navigation/layer_29 = ""
3D 导航层 29 的可选名称。留空则会显示为“层 29”。
String layer_names/3d_navigation/layer_30 = ""
3D 导航层 30 的可选名称。留空则会显示为“层 30”。
String layer_names/3d_navigation/layer_31 = ""
3D 导航层 31 的可选名称。留空则会显示为“层 31”。
String layer_names/3d_navigation/layer_32 = ""
3D 导航层 32 的可选名称。留空则会显示为“层 32”。
String layer_names/3d_physics/layer_1 = ""
3D 物理层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/3d_physics/layer_2 = ""
3D 物理层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/3d_physics/layer_3 = ""
3D 物理层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/3d_physics/layer_4 = ""
3D 物理层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/3d_physics/layer_5 = ""
3D 物理层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/3d_physics/layer_6 = ""
3D 物理层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/3d_physics/layer_7 = ""
3D 物理层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/3d_physics/layer_8 = ""
3D 物理层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/3d_physics/layer_9 = ""
3D 物理层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/3d_physics/layer_10 = ""
3D 物理层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/3d_physics/layer_11 = ""
3D 物理层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/3d_physics/layer_12 = ""
3D 物理层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/3d_physics/layer_13 = ""
3D 物理层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/3d_physics/layer_14 = ""
3D 物理层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/3d_physics/layer_15 = ""
3D 物理层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/3d_physics/layer_16 = ""
3D 物理层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/3d_physics/layer_17 = ""
3D 物理层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/3d_physics/layer_18 = ""
3D 物理层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/3d_physics/layer_19 = ""
3D 物理层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/3d_physics/layer_20 = ""
3D 物理层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/3d_physics/layer_21 = ""
3D 物理层 21 的可选名称。留空则会显示为“层 21”。
String layer_names/3d_physics/layer_22 = ""
3D 物理层 22 的可选名称。留空则会显示为“层 22”。
String layer_names/3d_physics/layer_23 = ""
3D 物理层 23 的可选名称。留空则会显示为“层 23”。
String layer_names/3d_physics/layer_24 = ""
3D 物理层 24 的可选名称。留空则会显示为“层 24”。
String layer_names/3d_physics/layer_25 = ""
3D 物理层 25 的可选名称。留空则会显示为“层 25”。
String layer_names/3d_physics/layer_26 = ""
3D 物理层 26 的可选名称。留空则会显示为“层 26”。
String layer_names/3d_physics/layer_27 = ""
3D 物理层 27 的可选名称。留空则会显示为“层 27”。
String layer_names/3d_physics/layer_28 = ""
3D 物理层 28 的可选名称。留空则会显示为“层 28”。
String layer_names/3d_physics/layer_29 = ""
3D 物理层 29 的可选名称。留空则会显示为“层 29”。
String layer_names/3d_physics/layer_30 = ""
3D 物理层 30 的可选名称。留空则会显示为“层 30”。
String layer_names/3d_physics/layer_31 = ""
3D 物理层 31 的可选名称。留空则会显示为“层 31”。
String layer_names/3d_physics/layer_32 = ""
3D 物理层 32 的可选名称。留空则会显示为“层 32”。
String layer_names/3d_render/layer_1 = ""
3D 渲染层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/3d_render/layer_2 = ""
3D 渲染层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/3d_render/layer_3 = ""
3D 渲染层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/3d_render/layer_4 = ""
3D 渲染层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/3d_render/layer_5 = ""
3D 渲染层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/3d_render/layer_6 = ""
3D 渲染层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/3d_render/layer_7 = ""
3D 渲染层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/3d_render/layer_8 = ""
3D 渲染层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/3d_render/layer_9 = ""
3D 渲染层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/3d_render/layer_10 = ""
3D 渲染层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/3d_render/layer_11 = ""
3D 渲染层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/3d_render/layer_12 = ""
3D 渲染层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/3d_render/layer_13 = ""
3D 渲染层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/3d_render/layer_14 = ""
3D 渲染层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/3d_render/layer_15 = ""
3D 渲染层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/3d_render/layer_16 = ""
3D 渲染层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/3d_render/layer_17 = ""
3D 渲染层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/3d_render/layer_18 = ""
3D 渲染层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/3d_render/layer_19 = ""
3D 渲染层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/3d_render/layer_20 = ""
3D 渲染层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/avoidance/layer_1 = ""
导航避障层 1 的可选名称。留空则会显示为“层 1”。
String layer_names/avoidance/layer_2 = ""
导航避障层 2 的可选名称。留空则会显示为“层 2”。
String layer_names/avoidance/layer_3 = ""
导航避障层 3 的可选名称。留空则会显示为“层 3”。
String layer_names/avoidance/layer_4 = ""
导航避障层 4 的可选名称。留空则会显示为“层 4”。
String layer_names/avoidance/layer_5 = ""
导航避障层 5 的可选名称。留空则会显示为“层 5”。
String layer_names/avoidance/layer_6 = ""
导航避障层 6 的可选名称。留空则会显示为“层 6”。
String layer_names/avoidance/layer_7 = ""
导航避障层 7 的可选名称。留空则会显示为“层 7”。
String layer_names/avoidance/layer_8 = ""
导航避障层 8 的可选名称。留空则会显示为“层 8”。
String layer_names/avoidance/layer_9 = ""
导航避障层 9 的可选名称。留空则会显示为“层 9”。
String layer_names/avoidance/layer_10 = ""
导航避障层 10 的可选名称。留空则会显示为“层 10”。
String layer_names/avoidance/layer_11 = ""
导航避障层 11 的可选名称。留空则会显示为“层 11”。
String layer_names/avoidance/layer_12 = ""
导航避障层 12 的可选名称。留空则会显示为“层 12”。
String layer_names/avoidance/layer_13 = ""
导航避障层 13 的可选名称。留空则会显示为“层 13”。
String layer_names/avoidance/layer_14 = ""
导航避障层 14 的可选名称。留空则会显示为“层 14”。
String layer_names/avoidance/layer_15 = ""
导航避障层 15 的可选名称。留空则会显示为“层 15”。
String layer_names/avoidance/layer_16 = ""
导航避障层 16 的可选名称。留空则会显示为“层 16”。
String layer_names/avoidance/layer_17 = ""
导航避障层 17 的可选名称。留空则会显示为“层 17”。
String layer_names/avoidance/layer_18 = ""
导航避障层 18 的可选名称。留空则会显示为“层 18”。
String layer_names/avoidance/layer_19 = ""
导航避障层 19 的可选名称。留空则会显示为“层 19”。
String layer_names/avoidance/layer_20 = ""
导航避障层 20 的可选名称。留空则会显示为“层 20”。
String layer_names/avoidance/layer_21 = ""
导航避障层 21 的可选名称。留空则会显示为“层 21”。
String layer_names/avoidance/layer_22 = ""
导航避障层 22 的可选名称。留空则会显示为“层 22”。
String layer_names/avoidance/layer_23 = ""
导航避障层 23 的可选名称。留空则会显示为“层 23”。
String layer_names/avoidance/layer_24 = ""
导航避障层 24 的可选名称。留空则会显示为“层 24”。
String layer_names/avoidance/layer_25 = ""
导航避障层 25 的可选名称。留空则会显示为“层 25”。
String layer_names/avoidance/layer_26 = ""
导航避障层 26 的可选名称。留空则会显示为“层 26”。
String layer_names/avoidance/layer_27 = ""
导航避障层 27 的可选名称。留空则会显示为“层 27”。
String layer_names/avoidance/layer_28 = ""
导航避障层 28 的可选名称。留空则会显示为“层 28”。
String layer_names/avoidance/layer_29 = ""
导航避障层 29 的可选名称。留空则会显示为“层 29”。
String layer_names/avoidance/layer_30 = ""
导航避障层 30 的可选名称。留空则会显示为“层 30”。
String layer_names/avoidance/layer_31 = ""
导航避障层 31 的可选名称。留空则会显示为“层 31”。
String layer_names/avoidance/layer_32 = ""
导航避障层 32 的可选名称。留空则会显示为“层 32”。
int memory/limits/message_queue/max_size_mb = 32
Godot 使用一个消息队列来延迟一些函数调用。如果你的空间用完了(你会看到一个错误),你可以在这里增加大小。
int memory/limits/multithreaded_server/rid_pool_prealloc = 60
在多线程模式下使用时,服务器会使用它(服务器和可视化端)。RID 是预先分配的,以避免在线程上停止请求它们的服务器。如果在线程中加载资源时服务器经常卡顿,请增加此数字。
float navigation/2d/default_cell_size = 1.0
2D 导航地图的默认单元格大小。见 NavigationServer2D.map_set_cell_size。
float navigation/2d/default_edge_connection_margin = 1.0
2D 导航地图的默认边界链接边距。见 NavigationServer2D.map_set_edge_connection_margin。
float navigation/2d/default_link_connection_radius = 4.0
2D 导航地图的默认链接连接半径。见 NavigationServer2D.map_set_link_connection_radius。
bool navigation/2d/use_edge_connections = true
如果启用,则 2D 导航地区会使用边缘连接来连接其他导航地区,使用的是导航地图边缘连接边距。这项设置只会影响 World2D 的默认导航地图。
float navigation/3d/default_cell_height = 0.25
3D 导航地图的默认单元格高度。见 NavigationServer3D.map_set_cell_height。
float navigation/3d/default_cell_size = 0.25
3D 导航地图的默认单元格大小。见 NavigationServer3D.map_set_cell_size。
float navigation/3d/default_edge_connection_margin = 0.25
3D 导航地图的默认边界链接边距。见 NavigationServer3D.map_set_edge_connection_margin。
float navigation/3d/default_link_connection_radius = 1.0
3D 导航地图的默认链接连接半径。见 NavigationServer3D.map_set_link_connection_radius。
Vector3 navigation/3d/default_up = Vector3(0, 1, 0)
3D 导航地图的默认上方向。见 NavigationServer3D.map_set_up。
bool navigation/3d/use_edge_connections = true
如果启用,则 3D 导航地区会使用边缘连接来连接其他导航地区,使用的是导航地图边缘连接边距。这项设置只会影响 World3D 的默认导航地图。
bool navigation/avoidance/thread_model/avoidance_use_high_priority_threads = true
如果启用,并且使用多线程进行避障计算,则执行的线程为高优先级。
bool navigation/avoidance/thread_model/avoidance_use_multiple_threads = true
如果启用,则会使用多线程进行避障计算。
bool navigation/baking/thread_model/baking_use_high_priority_threads = true
如果启用,并且使用多线程进行异步导航网格烘焙,则执行的线程为高优先级。
bool navigation/baking/thread_model/baking_use_multiple_threads = true
如果启用,则会使用多线程进行异步导航网格烘焙。
int network/limits/debugger/max_chars_per_second = 32768
允许作为调试器输出发送的最大字符数。超过该值,内容将被丢弃。这有助于避免调试器的连接停滞。
int network/limits/debugger/max_errors_per_second = 400
允许从调试器发送的最大错误数。超过该值,内容将被丢弃。这有助于避免调试器的连接停滞。
int network/limits/debugger/max_queued_messages = 2048
调试器队列中的最大消息数。超过该值,内容将被丢弃。这有助于限制调试器的内存使用。
int network/limits/debugger/max_warnings_per_second = 400
允许从调试器发送的最大警告数。超过此值,内容将被丢弃。这有助于避免调试器的连接停滞。
int network/limits/packet_peer_stream/max_buffer_po2 = 16
用于反序列化 Godot 数据的数据包对等流 (stream) 的默认大小(以字节为单位,指定为 2 的幂)。默认值 16
等于 65,536 字节。超过此大小,数据将被丢弃。
int network/limits/tcp/connect_timeout_seconds = 30
使用TCP的连接尝试的超时(以秒为单位)。
int network/limits/webrtc/max_channel_in_buffer_kb = 64
WebRTCDataChannel 输入缓冲区的最大尺寸(单位为 kiB)。
String network/tls/certificate_bundle_override = ""
用于 TLS 连接的 CA 证书包。如果设置为非空值,这将覆盖 Godot 默认的 Mozilla 证书包。如果留空,将使用默认的证书包。
如果有疑问,请将此设置留空。
float physics/2d/default_angular_damp = 1.0
2D 中的默认角度阻尼。
注意:值在 0
到 1
的范围内比较好。为 0
时,对象会保持相同的速度移动。大于 1
时,会在一秒内将速度降低到 0
,例如为 2
时会在半秒内将速度降低到 0
。大于等于物理帧率(physics/common/physics_ticks_per_second,默认为 60
)时,会让对象在迭代一次后就停止。
float physics/2d/default_gravity = 980.0
2D 默认重力强度(单位为像素每平方秒)。
注意:这个属性只在项目启动时读取。要在运行时改变默认重力,请使用以下代码示例:
GDScriptC#
# 将默认重力强度设置为 980。
PhysicsServer2D.area_set_param(get_viewport().find_world_2d().space, PhysicsServer2D.AREA_PARAM_GRAVITY, 980)
// 将默认重力强度设置为 980。
PhysicsServer2D.AreaSetParam(GetViewport().FindWorld2D().Space, PhysicsServer2D.AreaParameter.Gravity, 980);
Vector2 physics/2d/default_gravity_vector = Vector2(0, 1)
2D 默认重力方向。
注意:这个属性只在项目启动时读取。要在运行时改变默认重力向量,请使用以下代码示例:
GDScriptC#
# 将默认整理方向设置为 `Vector2(0, 1)`。
PhysicsServer2D.area_set_param(get_viewport().find_world_2d().space, PhysicsServer2D.AREA_PARAM_GRAVITY_VECTOR, Vector2.DOWN)
// 将默认整理方向设置为 `Vector2(0, 1)`。
PhysicsServer2D.AreaSetParam(GetViewport().FindWorld2D().Space, PhysicsServer2D.AreaParameter.GravityVector, Vector2.Down)
float physics/2d/default_linear_damp = 0.1
2D 中的默认线性阻尼。
注意:值在 0
到 1
的范围内比较好。为 0
时,对象会保持相同的速度移动。大于 1
时,会在一秒内将速度降低到 0
,例如为 2
时会在半秒内将速度降低到 0
。大于等于物理帧率(physics/common/physics_ticks_per_second,默认为 60
)时,会让对象在迭代一次后就停止。
String physics/2d/physics_engine = "DEFAULT"
设置 2D 物理使用哪个物理引擎。
“DEFAULT”和“GodotPhysics2D”是相同的,因为目前尚未实现备选 2D 物理服务器。
bool physics/2d/run_on_separate_thread = false
如果为 true
,则 2D 物理服务器会在单独的线程上运行,能够更好地利用多核 CPU。如果为 false
,则 2D 物理服务器会在主线程上运行。在单独的线程上运行物理服务器能够提高性能,但会把对 API 的访问限制在物理处理中。
float physics/2d/sleep_threshold_angular = 0.139626
角速度的阈值,在该阈值以下的 2D 物理体将被视为不活动。见 PhysicsServer2D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD。
float physics/2d/sleep_threshold_linear = 2.0
线速度的阈值,在该阈值以下的 2D 物理体将被视为不活动。见 PhysicsServer2D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD。
float physics/2d/solver/contact_max_allowed_penetration = 0.3
两个形状互相穿透的最大距离,超过该距离后将视为碰撞。见 PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION。
float physics/2d/solver/contact_max_separation = 1.5
两个形状间的最大距离,超过该距离后它们将被视为分离,接触将被弃置。见 PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_SEPARATION。
float physics/2d/solver/contact_recycle_radius = 1.0
一对物体在其碰撞状态被重新计算之前的最大移动距离。见 PhysicsServer2D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS。
float physics/2d/solver/default_constraint_bias = 0.2
所有物理约束的默认求解器偏置。定义物体对强制约束的反应程度。见 PhysicsServer2D.SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS。
不同的约束可以指定不同的偏置值(见 Joint2D.bias)。
float physics/2d/solver/default_contact_bias = 0.8
所有物理接触的默认求解器偏置。定义物体对强制接触拆分的反应程度。见 PhysicsServer2D.SPACE_PARAM_CONTACT_DEFAULT_BIAS。
不同的形状可以指定不同的偏置值(见 Shape2D.custom_solver_bias)。
int physics/2d/solver/solver_iterations = 16
所有接触和约束的求解器迭代次数。迭代次数越多,碰撞越精确。然而,大量迭代也会消耗大量的 CPU 性能,可能导致性能的降低。见 PhysicsServer2D.SPACE_PARAM_SOLVER_ITERATIONS。
float physics/2d/time_before_sleep = 0.5
2D 物理物体进入睡眠状态之前,所需的不活动时间(以秒为单位)。请参阅 PhysicsServer2D.SPACE_PARAM_BODY_TIME_TO_SLEEP。
float physics/3d/default_angular_damp = 0.1
3D 中的默认角度阻尼。
注意:值在 0
到 1
的范围内比较好。为 0
时,对象会保持相同的速度移动。大于 1
时,会在一秒内将速度降低到 0
,例如为 2
时会在半秒内将速度降低到 0
。大于等于物理帧率(physics/common/physics_ticks_per_second,默认为 60
)时,会让对象在迭代一次后就停止。
float physics/3d/default_gravity = 9.8
3D 默认重力强度(单位为米每平方秒)。
注意:这个属性只在项目启动时读取。要在运行时改变默认重力,请使用以下代码示例:
GDScriptC#
# 将默认重力强度设置为 9.8。
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, 9.8)
// 将默认重力强度设置为 9.8。
PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, PhysicsServer3D.AreaParameter.Gravity, 9.8);
Vector3 physics/3d/default_gravity_vector = Vector3(0, -1, 0)
3D 默认重力方向。
注意:这个属性只在项目启动时读取。要在运行时改变默认重力向量,请使用以下代码示例:
GDScriptC#
# 将默认整理方向设置为 `Vector3(0, -1, 0)`。
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR, Vector3.DOWN)
// 将默认整理方向设置为 `Vector3(0, -1, 0)`。
PhysicsServer3D.AreaSetParam(GetViewport().FindWorld3D().Space, PhysicsServer3D.AreaParameter.GravityVector, Vector3.Down)
float physics/3d/default_linear_damp = 0.1
3D 中的默认线性阻尼。
注意:值在 0
到 1
的范围内比较好。为 0
时,对象会保持相同的速度移动。大于 1
时,会在一秒内将速度降低到 0
,例如为 2
时会在半秒内将速度降低到 0
。大于等于物理帧率(physics/common/physics_ticks_per_second,默认为 60
)时,会让对象在迭代一次后就停止。
String physics/3d/physics_engine = "DEFAULT"
设置 3D 物理使用哪个物理引擎。
“DEFAULT”和“GodotPhysics3D”是相同的,因为目前尚未实现备选 3D 物理服务器。
bool physics/3d/run_on_separate_thread = false
如果为 true
,则 3D 物理服务器会在单独的线程上运行,能够更好地利用多核 CPU。如果为 false
,则 3D 物理服务器会在主线程上运行。在单独的线程上运行物理服务器能够提高性能,但会把对 API 的访问限制在物理处理中。
float physics/3d/sleep_threshold_angular = 0.139626
角速度的阈值,在该阈值以下的 3D 物理体将被视为不活动。见 PhysicsServer3D.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD。
float physics/3d/sleep_threshold_linear = 0.1
线速度的阈值,在该阈值以下的 3D 物理体将被视为不活动。见 PhysicsServer3D.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD。
float physics/3d/solver/contact_max_allowed_penetration = 0.01
两个形状互相穿透的最大距离,超过该距离后将视为碰撞。见 PhysicsServer2D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION。 PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION。
float physics/3d/solver/contact_max_separation = 0.05
两个形状间的最大距离,超过该距离后它们将被视为分离,接触将被弃置。见 PhysicsServer3D.SPACE_PARAM_CONTACT_MAX_SEPARATION。
float physics/3d/solver/contact_recycle_radius = 0.01
一对物体在其碰撞状态被重新计算之前的最大移动距离。见 PhysicsServer3D.SPACE_PARAM_CONTACT_RECYCLE_RADIUS。
float physics/3d/solver/default_contact_bias = 0.8
所有物理接触的默认求解器偏置。定义物体对强制接触拆分的反应程度。见 PhysicsServer3D.SPACE_PARAM_CONTACT_DEFAULT_BIAS。
不同的形状可以指定不同的偏置值(见 Shape3D.custom_solver_bias)。
int physics/3d/solver/solver_iterations = 16
所有接触与约束的求解器迭代数。迭代次数越多,碰撞越准确。但是,大量的迭代会需要更多的 CPU 能力,会降低性能。见 PhysicsServer3D.SPACE_PARAM_SOLVER_ITERATIONS。
float physics/3d/time_before_sleep = 0.5
3D 物理物体进入睡眠状态之前,所需的不活动时间(以秒为单位)。请参阅 PhysicsServer3D.SPACE_PARAM_BODY_TIME_TO_SLEEP。
bool physics/common/enable_object_picking = true
在根视图上启用 Viewport.physics_object_picking。
int physics/common/max_physics_steps_per_frame = 8
控制每个渲染帧所能模拟的最大物理步骤数。默认值经过调试,可以避免“死亡螺旋”,防止开销较大的物理仿真无限触发开销更大的仿真。不过如果渲染 FPS 小于 physics/common/physics_ticks_per_second 的 1 / max_physics_steps_per_frame
,游戏看上去会是降速的。即便在物理计算中始终使用 delta
也一样会发生。要避免这种情况,如果增大了 physics/common/physics_ticks_per_second,而且远大于默认值,那么建议将 physics/common/max_physics_steps_per_frame 也调大。
注意:这个属性只在项目启动时读取。要在运行时改变每帧模拟的最大物理步骤数,请改为设置 Engine.max_physics_steps_per_frame。
float physics/common/physics_jitter_fix = 0.5
控制物理周期与真实时间的同步程度。小于等于 0 时,周期是同步的。对时钟同步有要求的网络游戏建议使用此类值。较高的值会导致游戏内时钟和真实时钟的较大偏差,但可以平滑帧率抖动。大多数情况下,默认值 0.5 应该没问题;大于 2 的值可能导致游戏对丢帧作出明显延迟的反应,因此不推荐使用。
注意:为了获得最佳的结果,使用自定义物理插值解决方案时,应通过将 physics/common/physics_jitter_fix 设置为 0
来禁用物理抖动修复。
注意:该属性仅在项目启动时读取。 要在运行时更改物理抖动修复,请改为设置 Engine.physics_jitter_fix。
int physics/common/physics_ticks_per_second = 60
每秒执行的固定迭代次数。用于控制物理仿真和 Node._physics_process 的执行频率。另见 application/run/max_fps。
注意:这个属性只在项目启动时读取。要在运行时改变物理 FPS,请改为设置 Engine.physics_ticks_per_second。
注意:每个渲染帧最多只能模拟 physics/common/max_physics_steps_per_frame 个物理周期。如果为了追赶渲染,需要在每个渲染帧中模拟更多物理周期,游戏看上去会是降速的(即便在物理计算中始终使用 delta
)。因此,如果增大了 physics/common/physics_ticks_per_second,而且远大于默认值,那么建议将 physics/common/max_physics_steps_per_frame 也调大。
int rendering/2d/sdf/oversize = 1
控制 2D 带符号距离场应该覆盖原始视口中多大的区域。该 SDF 可以在 CanvasItem 着色器中采样,用于 GPUParticles2D 碰撞。生成带符号距离场时,较高的值能够让部分处于视口外的遮挡器也纳入考虑范围,但会以牺牲性能为代价。如果你注意到 LightOccluder2D 离开视口时粒子会穿过遮挡器,就可以增大这个设置。
每一侧每个轴上都会添加指定的百分比。例如,默认设置为 120% 就会让带符号距离场覆盖视口之外每侧(上、右、下、左)各 20% 的大小。
注意:这个属性仅在项目启动时读取。要在运行时修改 2D SDF 扩界百分比,请改用 RenderingServer.viewport_set_sdf_oversize_and_scale。
int rendering/2d/sdf/scale = 1
2D 带符号距离场的分辨率缩放。设置为较大的值能够得到更精确的带符号距离场,也能让带符号距离场在相机移动时更为稳定,但代价是牺牲性能。默认值(50%)表示每个轴使用视口大小的一半大小的分辨率,因此生成的 SDF 的像素数量是视口像素数量的 25%。
注意:该属性仅在项目启动时读取。 要在运行时更改 2D SDF 分辨率缩放,请改为使用 RenderingServer.viewport_set_sdf_oversize_and_scale。
int rendering/2d/shadow_atlas/size = 2048
2D 阴影图集的大小,单位为像素。值越高,Light2D 的阴影越精确,但性能消耗和显存占用也越大。指定的值会根据最接近的 2 的幂进行向上取整。
注意:这个属性仅在项目启动时读取。要在运行时修改 2D 阴影图集的大小,请改用 RenderingServer.canvas_set_shadow_texture_size。
bool rendering/2d/snap/snap_2d_transforms_to_pixel = false
如果为 true
,则 CanvasItem 节点会在内部吸附到整像素。节点的位置仍然可以是次像素的,但小数部分无效。这样外观看上去就会更锐利,但会影响移动的平滑程度,尤其是在启用了 Camera2D 平滑的情况下。
注意:这个属性仅在项目启动时读取。要在运行时开关 2D 变换的吸附,请改为在根 Viewport 上使用 RenderingServer.viewport_set_snap_2d_transforms_to_pixel。
注意:Control 节点默认就是吸附到最接近的像素的。这种行为由 gui/common/snap_controls_to_pixels 控制。
bool rendering/2d/snap/snap_2d_vertices_to_pixel = false
如果为 true
,则 CanvasItem 节点的顶点会吸附到整像素。只影响最终顶点的位置,不影响变换。这样外观看上去就会更锐利,但会影响移动的平滑程度,尤其是在启用了 Camera2D 平滑的情况下。
注意:这个属性仅在项目启动时读取。要在运行时开关 2D 顶点的吸附,请改为在根 Viewport 上使用 RenderingServer.viewport_set_snap_2d_vertices_to_pixel。
注意:Control 节点默认就是吸附到最接近的像素的。这种行为由 gui/common/snap_controls_to_pixels 控制。
int rendering/anti_aliasing/quality/msaa_2d = 0
设置用于 2D/Canvas 渲染的 MSAA 采样数(为 2 的幂)。MSAA 可用于减少多边形边缘周围的锯齿。较高的 MSAA 值会产生更平滑的边缘,但在某些硬件上可能会明显变慢,尤其是显存带宽比较有限的集成显卡。这对着色器引起的锯齿或纹理锯齿无效。
注意:MSAA 仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。
int rendering/anti_aliasing/quality/msaa_3d = 0
设置用于 3D 渲染的 MSAA 采样数(为 2 的幂)。MSAA 用于减少多边形边缘周围的锯齿。较高的 MSAA 值会产生更平滑的边缘,但在某些硬件上可能会明显变慢,尤其是显存带宽比较有限的集成显卡。另见用于超级采样的双线性缩放 3d rendering/scaling_3d/mode,它提供更高的质量但更昂贵。这对着色器引起的锯齿或纹理锯齿无效。
注意:MSAA 仅支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。
int rendering/anti_aliasing/quality/screen_space_aa = 0
设置默认屏幕 Viewport 的屏幕空间抗锯齿模式。屏幕空间抗锯齿的原理是使用后期处理着色器选择性地让边缘模糊。与 MSAA 的区别在于,MSAA 是在渲染对象时进行了多次覆盖采样。屏幕空间 AA 的方法通常比 MSAA 要快,会将镜面反射锯齿也进行平滑处理,但容易让场景变得模糊。这种模糊可以通过自动使用负的 Mipmap LOD 偏置部分缓解(见 rendering/textures/default_filters/texture_mipmap_bias)。
对抗镜面反射锯齿的另一种方法是启用 rendering/anti_aliasing/screen_space_roughness_limiter/enabled。
注意:屏幕空间抗锯齿仅支持 Forward+ 和 Mobile 渲染方法,不支持 Compatibility。
bool rendering/anti_aliasing/quality/use_debanding = false
如果为 true
,则使用一个快速的后处理滤镜使条带在 3D 中明显不那么明显。除非 Environment.background_mode 为 Environment.BG_CANVAS,否则 2D 渲染不会受到去条带的影响。
在某些情况下,去条带可能会引入稍微明显的抖动图案。建议只在实际需要时才启用去条带,因为抖动图案会使无损压缩的屏幕截图变大。
注意:只有在项目启动时才读取该属性。要在运行时设置去条带,请改为在根 Viewport 上设置 Viewport.use_debanding。
bool rendering/anti_aliasing/quality/use_taa = false
为默认屏幕 Viewport 启用时间抗锯齿(Temporal Anti-Aliasing)。TAA 的原理是让相机产生抖动并积累最近渲染的几帧图像,使用运动向量渲染让相机和对象产生运动。启用 TAA 会让图像变模糊,这种模糊可以通过自动使用负的 Mipmap LOD 偏置部分缓解(参见 rendering/textures/default_filters/texture_mipmap_bias)。
注意:实现尚未完成,粒子及蒙皮网格等某些视觉实例可能会显示运动中的重影伪像。
注意:TAA 只支持 Forward+ 渲染方式,不支持 Mobile 或 Compatibility。
float rendering/anti_aliasing/screen_space_roughness_limiter/amount = 0.25
注意:这个属性仅在项目启动时读取。要在运行时控制屏幕空间粗糙度限制器,请调用 RenderingServer.screen_space_roughness_limiter_set_active。
bool rendering/anti_aliasing/screen_space_roughness_limiter/enabled = true
如果为 true
,则启用空间过滤器以限制具有高频细节的区域的粗糙度。这可以在一定程度上帮助减少镜面反射锯齿,尽管不如启用 rendering/anti_aliasing/quality/use_taa。 该过滤器的性能成本很小,因此如果它对你的场景没有明显好处,请考虑禁用它。
注意:屏幕空间粗糙度限制器只支持 Forward+ 和 Mobile 渲染方式,不支持 Compatibility。
注意:这个属性仅在项目启动时读取。要在运行时控制屏幕空间粗糙度限制器,请调用 RenderingServer.screen_space_roughness_limiter_set_active。
float rendering/anti_aliasing/screen_space_roughness_limiter/limit = 0.18
注意:这个属性仅在项目启动时读取。要在运行时控制屏幕空间粗糙度限制器,请调用 RenderingServer.screen_space_roughness_limiter_set_active。
int rendering/camera/depth_of_field/depth_of_field_bokeh_quality = 1
设置景深效果的质量。质量越高,采样的数量也越多,也会更慢,但看起来更平滑。
int rendering/camera/depth_of_field/depth_of_field_bokeh_shape = 1
设置景深的形状。可以是方形、六边形或圆形。方形最快。圆形最真实,但计算开销也是最大的。
bool rendering/camera/depth_of_field/depth_of_field_use_jitter = false
如果为 true
,则抖动 DOF 样本以使效果稍微模糊,并隐藏低采样率创建的线条。当与较低的样本数一起使用时,这可能会导致外观略带颗粒感。
String rendering/driver/depth_prepass/disable_for_vendors = "PowerVR,Mali,Adreno,Apple"
针对某些供应商禁用 rendering/driver/depth_prepass/enable。默认情况下会针对移动设备禁用前置深度阶段,因为移动设备由于独特的架构而无法从前置深度阶段中获益。
bool rendering/driver/depth_prepass/enable = true
如果 true
,则在渲染 3D 材质之前先执行深度阶段。当使用复杂的材质和照明时,这样做能够显著提高过度绘制场景的性能。然而,如果场景中被遮挡的表面比较少,前置深度阶段可能会降低性能。如果你的游戏使用的是不易造成过度绘制的固定视角(例如俯视或者横版视角),请考虑禁用前置深度阶段,从而提升性能。这个设置可以在运行时更改,针对当前查看的场景来优化进行。
注意:前置深度阶段仅在使用 Forward+ 或 Compatibility 渲染方法时支持。使用 Mobile 渲染方法时,不会执行前置深度阶段。
int rendering/driver/threads/thread_model = 1
渲染使用的线程模型。使用线程渲染可能提升性能,但与主线程同步时可能引起更大的卡顿。
注意:多线程对应的 Multi-Threaded 选项是实验性的,存在一些已知的问题,这些问题可能导致崩溃,尤其是在使用粒子或调整窗口大小的情况下。目前不推荐在生产环境中使用。
Color rendering/environment/defaults/default_clear_color = Color(0.3, 0.3, 0.3, 1)
默认清屏颜色。Viewport 可使用其 Environment 进行覆盖。具体见 Environment.background_mode 和 Environment.background_color。要通过代码更改此默认颜色,请使用 RenderingServer.set_default_clear_color。
String rendering/environment/defaults/default_environment = ""
场景未指定其环境时作为回退环境使用的 Environment。无论是否设置了环境,加载场景时都会加载默认环境。如果你不依赖回退环境,那么就不需要设置这个属性。
int rendering/environment/glow/upscale_mode = 1
设置辉光效果在复制到屏幕之前的放大方式。Linear(线性)更快,但看起来棱角分明。Bicubic(双线性)更慢,但看起来比较平滑。
int rendering/environment/glow/upscale_mode.mobile = 0
由于性能或驱动程序支持问题,rendering/environment/glow/upscale_mode 在移动设备上的低端覆盖项。
int rendering/environment/screen_space_reflection/roughness_quality = 1
设置粗糙屏幕空间反射的质量。关闭后所有屏幕空间反射都会显得锐利;使用较高的值会使粗糙反射更好看。
float rendering/environment/ssao/adaptive_target = 0.5
当 rendering/environment/ssao/quality 被设置为 Ultra
时所使用的质量目标。值为 0.0
时的质量和速度与 Medium
相似,而值为 1.0
时的质量比其他任何设置都要高得多,代价是牺牲性能。
int rendering/environment/ssao/blur_passes = 2
模糊通道数,在计算屏幕空间环境光遮蔽时使用。数值越大,外观越平滑,但计算速度会变慢,高频细节也会变少。
float rendering/environment/ssao/fadeout_from = 50.0
屏幕空间环境光遮蔽效果开始淡出的距离。使用该属性可以在远距离处隐藏环境光遮蔽。
float rendering/environment/ssao/fadeout_to = 300.0
屏幕空间环境光遮蔽效果完全淡出的距离。使用该属性可以在远距离处隐藏环境光遮蔽。
bool rendering/environment/ssao/half_size = true
如果为 true
,屏幕空间环境光遮蔽将以一半大小渲染,然后在被添加到场景之前放大。这明显更快,但可能会遗漏一些小细节。如果为 false
,屏幕空间环境光遮蔽将以全尺寸渲染。
int rendering/environment/ssao/quality = 2
设置屏幕空间环境光遮蔽效果的质量。值越高,采样数量越多,因此最终的质量也越高,但代价是消耗性能。设为 Ultra
会使用 rendering/environment/ssao/adaptive_target 设置。
float rendering/environment/ssil/adaptive_target = 0.5
当 rendering/environment/ssil/quality 被设置为 Ultra
时所使用的质量目标。值为 0.0
时的质量和速度与 Medium
相似,而值为 1.0
时的质量比其他任何设置都要高得多,代价是牺牲性能。使用适应目标时,性能损耗与场景复杂度成正比。
int rendering/environment/ssil/blur_passes = 4
模糊通道数,在计算屏幕空间间接光照时使用。数值越大,外观越平滑,但计算速度会变慢,高频细节也会变少。
float rendering/environment/ssil/fadeout_from = 50.0
屏幕空间间接光照效果开始淡出的距离。使用该属性可以在远距离处隐藏屏幕空间间接光照。
float rendering/environment/ssil/fadeout_to = 300.0
屏幕空间间接光照效果完全淡出的距离。使用该属性可以在远距离处隐藏屏幕空间间接光照。
bool rendering/environment/ssil/half_size = true
如果为 true
,屏幕空间间接光照将以一半大小渲染,然后在被添加到场景之前放大。这明显更快,但可能会遗漏一些小细节,部分对象的边缘也会出现发光的情况。
int rendering/environment/ssil/quality = 2
设置屏幕空间间接照明效果的质量。值越高,采样数量越多,因此最终的质量也越高,但代价是消耗性能。设为 Ultra
会使用 rendering/environment/ssil/adaptive_target 设置。
float rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale = 0.01
对次表面散射效果应用深度进行缩放。较高的取值能够让灯光散射进网格的某些部分或者在屏幕空间中距离较近但深度更远的其他网格。另见 rendering/environment/subsurface_scattering/subsurface_scattering_scale。
注意:这个属性仅在项目启动时读取。要在运行时设置次表面散射深度缩放,请改为调用 RenderingServer.sub_surface_scattering_set_scale。
int rendering/environment/subsurface_scattering/subsurface_scattering_quality = 1
设置次表面散射效果的质量。值越高越慢,但视觉效果更佳。影响 BaseMaterial3D.subsurf_scatter_enabled 为 true
以及设置了 SSS_STRENGTH
的 ShaderMaterial 的材质的渲染。
注意:这个属性仅在项目启动时读取。要在运行时设置次表面散射质量,请改为调用 RenderingServer.sub_surface_scattering_set_quality。
float rendering/environment/subsurface_scattering/subsurface_scattering_scale = 0.05
缩放对次表面散射效果进行采样的距离。更改该值不会影响性能;但较高的值将导致明显的伪影,因为样本将变得明显分散。较低的值会导致散射光的散布更小。另见 rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale。
注意:这个属性仅在项目启动时读取。如果要在运行时设置次表面散射缩放,请改为调用 RenderingServer.sub_surface_scattering_set_scale。
int rendering/environment/volumetric_fog/use_filter = 1
在积分之前启用体积雾效果的过滤。这大大模糊了雾,减少了精细的细节,但也平滑了粗糙的边缘和锯齿伪影。当需要更多细节时禁用。
int rendering/environment/volumetric_fog/volume_depth = 64
沿着片段体素缓冲区的深度使用的切片数量,用于体积雾。较小的数字会更有效,但可能会导致相机移动时出现伪影。另请参阅 Environment.volumetric_fog_length。
int rendering/environment/volumetric_fog/volume_size = 64
用于确定相机 X 轴和 Y 轴中片段体素缓冲区大小的基本大小。最终大小按屏幕的长宽比缩放,因此实际值可能与设置的值不同。设置较大的大小,以获得更详细的雾;设置较小的大小,以获得更好的性能。
String rendering/gl_compatibility/driver
设置渲染器驱动程序,在使用 Compatibility(兼容性)渲染器时使用。这个属性不能直接编辑,请改用特定平台的覆盖项来设置驱动程序。
String rendering/gl_compatibility/driver.android
rendering/gl_compatibility/driver 在 Android 的覆盖项。
String rendering/gl_compatibility/driver.ios
rendering/gl_compatibility/driver 在 iOS 的覆盖项。
String rendering/gl_compatibility/driver.linuxbsd
rendering/gl_compatibility/driver 在 LinuxBSD 的覆盖项。
String rendering/gl_compatibility/driver.macos
rendering/gl_compatibility/driver 在 macOS 的覆盖项。
String rendering/gl_compatibility/driver.web
rendering/gl_compatibility/driver 在 Web 的覆盖项。
String rendering/gl_compatibility/driver.windows
rendering/gl_compatibility/driver 在 Windows 的覆盖项。
bool rendering/gl_compatibility/fallback_to_angle = true
为 true
时,如果原生 OpenGL 不受支持或设备被列在 rendering/gl_compatibility/force_angle_on_devices 中,则兼容性渲染器将回退到 ANGLE。
注意:该设置仅在 Windows 上实现。
bool rendering/gl_compatibility/fallback_to_gles = true
为 true
时,如果桌面 OpenGL 不被支持,则兼容性渲染器将回退到 OpenGLES。
注意:该设置仅在 Linux/X11 上实现。
bool rendering/gl_compatibility/fallback_to_native = true
如果为 true
,如果 ANGLE 乃至 Metal 不被支持,则兼容性渲染器将回退到原生 OpenGL。
注意:该设置仅在 macOS 上实现。
Array rendering/gl_compatibility/force_angle_on_devices
应始终使用 ANGLE 渲染器的设备的 Array。
每个条目都是一个带有以下键的 Dictionary:vendor
和 name
。name
可以被设置为 *
以添加所有带有指定 vendor
的设备。
注意:该设置仅在 Windows 上实现。
int rendering/gl_compatibility/item_buffer_size = 16384
单次视口更新中能够绘制的画布项目命令的最大数量。如果发出了更多的渲染命令,就会被忽略。降低这个限制可以在带宽有限的设备上提高性能。如果你发现不是所有的对象都在同一帧中被绘制,请提高这个限制。
bool rendering/gl_compatibility/nvidia_disable_threaded_optimization = true
如果为 true
,则禁用 NVIDIA 驱动的多线程优化功能,这个功能会导致大多数 OpenGL 应用的卡顿。
注意:这个设置仅在 Windows 上有效,因为在其他平台上多线程优化默认都是关闭的。
bool rendering/global_illumination/gi/use_half_resolution = false
如果为 true
,则以减半的分辨率渲染 VoxelGI 和 SDFGI(Environment.sdfgi_enabled)缓冲区(例如,当视口大小为 1920×1080 时为 960×540)。当启用 VoxelGI 或 SDFGI 时,这会显著提高性能,但代价是多边形边缘上可能会出现可见的伪影。随着视口分辨率的增加,质量损失变得不那么明显。LightmapGI 渲染不受该设置的影响。
注意:只有在项目启动时该属性才会被读取。要在运行时设置半分辨率 GI,请改为调用 RenderingServer.gi_set_use_half_resolution。
int rendering/global_illumination/sdfgi/frames_to_converge = 5
用于收敛带符号距离场全局光照的帧数。值越高,得到的噪点越少,但完全收敛所需的时间也就越长。这意味着场景的全局光照处于过暗状态的时间可能更长,在相机快速移动时尤为明显。实际的收敛速度取决于渲染帧率。例如,默认设置为 30 帧,则 60 FPS 的渲染会让 SDFGI 在 0.5 秒后完全收敛。另见 rendering/global_illumination/sdfgi/frames_to_update_lights 和 rendering/global_illumination/sdfgi/probe_ray_count。
注意:这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的收敛速度,请改为调用 RenderingServer.environment_set_sdfgi_frames_to_converge。
int rendering/global_illumination/sdfgi/frames_to_update_lights = 2
带符号距离场全局光照中动态光照更新所需的帧数。值越高,动态灯光造成的间接光照就会花费更多的时间来更新,但动态灯光数量较多时性能会更好。另见 rendering/global_illumination/sdfgi/frames_to_converge 和 rendering/global_illumination/sdfgi/probe_ray_count。
注意:仅影响 Light3D.light_bake_mode 为 Light3D.BAKE_DYNAMIC(默认值)的 Light3D 节点。让不会移动的灯光使用 Light3D.BAKE_STATIC 烘焙模式能够提升性能。
注意:这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的灯光更新速度,请改为调用 RenderingServer.environment_set_sdfgi_frames_to_update_light。
int rendering/global_illumination/sdfgi/probe_ray_count = 1
计算带符号距离场全局光照时每帧发出的射线。值越高,得到的噪点越少,但性能消耗也越大。另见 rendering/global_illumination/sdfgi/frames_to_converge 和 rendering/global_illumination/sdfgi/frames_to_update_lights。
注意:这个属性仅在项目启动时读取。要在运行时控制 SDFGI 的质量,请改为调用 RenderingServer.environment_set_sdfgi_ray_count。
int rendering/global_illumination/voxel_gi/quality = 0
要使用的 VoxelGI 质量。高质量下的光照更精确、反射质量更好,但渲染速度较慢。这个设置不影响烘焙数据,应用时不需要重新烘焙 VoxelGI。
注意:这个属性仅在项目启动时读取。要在运行时控制 VoxelGI 的质量,请改为调用 RenderingServer.voxel_gi_set_quality。
int rendering/lightmapping/bake_performance/max_rays_per_pass = 32
使用 LightmapGI 烘焙光照贴图时,每阶段可以投射的最大光线数。根据场景的不同,调整此值可能会在烘焙光照贴图时提高 GPU 利用率,从而加快烘焙时间。
int rendering/lightmapping/bake_performance/max_rays_per_probe_pass = 64
在带有 LightmapGI 的 LightmapProbe 中烘焙动态对象光照时,每阶段可以投射的最大光线数。根据场景的不同,调整该值可能会在烘焙光照贴图时提高 GPU 利用率,从而加快烘焙时间。
int rendering/lightmapping/bake_performance/region_size = 512
使用 LightmapGI 烘焙光照贴图时使用的区块大小。
int rendering/lightmapping/bake_quality/high_quality_probe_ray_count = 512
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_HIGH 时,用于在 LightmapProbe 中烘焙动态对象光照的光线数。
int rendering/lightmapping/bake_quality/high_quality_ray_count = 512
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_HIGH 时,用于使用 LightmapGI 烘焙光照贴图的光线数。
int rendering/lightmapping/bake_quality/low_quality_probe_ray_count = 64
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_LOW 时,用于在 LightmapProbe 中烘焙动态对象光照的光线数。
int rendering/lightmapping/bake_quality/low_quality_ray_count = 32
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_LOW 时,用于使用 LightmapGI 烘焙光照贴图的光线数。
int rendering/lightmapping/bake_quality/medium_quality_probe_ray_count = 256
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_MEDIUM 时,用于在 LightmapProbe 中烘焙动态对象光照的光线数。
int rendering/lightmapping/bake_quality/medium_quality_ray_count = 128
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_MEDIUM 时,用于使用 LightmapGI 烘焙光照贴图的光线数。
int rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count = 2048
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_ULTRA 时,用于在 LightmapProbe 中烘焙动态对象光照的光线数。
int rendering/lightmapping/bake_quality/ultra_quality_ray_count = 2048
当 LightmapGI.quality 为 LightmapGI.BAKE_QUALITY_ULTRA 时,用于使用 LightmapGI 烘焙光照贴图的光线数。
int rendering/lightmapping/denoising/denoiser = 0
用于对光照贴图进行降噪的降噪器工具。
使用 OpenImageDenoise(OIDN)需要在 EditorSettings.filesystem/tools/oidn/oidn_denoise_path 的编辑器设置中配置 OIDN 可执行文件的路径。OIDN 可以从 OpenImageDenoise 的下载页面下载。
OIDN 将在可用时使用 GPU 加速。与使用计算着色器进行加速的 JNLM 不同,OIDN 使用特定于供应商的加速方法。要使 GPU 加速可用,必须根据你的 GPU 在系统上安装以下库:
NVIDIA GPU:CUDA 库
AMD GPU:HIP 库
Intel GPU:SYCL 库
如果系统上没有配置 GPU 加速,则会执行基于 CPU 的多线程去噪。在大多数情况下,这种基于 CPU 的降噪明显慢于 JNLM 降噪器。
float rendering/lightmapping/primitive_meshes/texel_size = 0.2
用于计算启用了 PrimitiveMesh.add_uv2 的 PrimitiveMesh 资源上的 Mesh.lightmap_size_hint 的体素大小。
float rendering/lightmapping/probe_capture/update_speed = 15
当表示来自 LightmapProbe 的动态对象光照时,与帧速率无关的更新速度。较高的值使动态对象光照更新更快。较高的值可以防止快速移动的对象在其上显示“过时的”间接光照,但代价是当对象从明亮区域移动到阴影区域时可能会出现闪烁。
bool rendering/lights_and_shadows/directional_shadow/16_bits = true
使用 16 位的平行光阴影深度贴图。启用后,阴影的精度会降低,可能造成阴影失真,但能够在部分设备上提升性能。
int rendering/lights_and_shadows/directional_shadow/size = 4096
方向阴影的大小,单位为像素。值越高,得到的阴影越清晰,但会以性能为代价。取值将舍入到最接近的 2 次幂。
int rendering/lights_and_shadows/directional_shadow/size.mobile = 2048
由于性能和驱动支持,在移动设备上会对 rendering/lights_and_shadows/directional_shadow/size 以低配数值覆盖。
int rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality = 2
DirectionalLight3D 投射的阴影的质量设置。质量设置地越高,从阴影贴图读取的样本越多,因此速度也越慢。质量设置地较低时,可能会导致阴影看起来有颗粒感。
注意:Soft Very Low 设置会自动将常量的阴影模糊乘以 0.75 倍,从而减少可见的噪点。这种对自动模糊的更改仅影响 Light3D.shadow_blur 中定义的常量模糊系数,不影响 DirectionalLight3D 的 Light3D.light_angular_distance 执行的可变模糊。
注意:Soft High 和 Soft Ultra 设置,会自动将常量的阴影模糊分别乘以 1.5 倍和 2 倍,从而更好地利用增加的样本数。这种对模糊的提升还改善了动态对象阴影的稳定性。
int rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality.mobile = 0
由于性能和驱动支持,在移动设备上会对 rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality 以低配数值覆盖。
bool rendering/lights_and_shadows/positional_shadow/atlas_16_bits = true
使用 16 位的全向灯/聚光灯阴影深度贴图。启用后,阴影的精度会降低,可能造成阴影失真,但能够在部分设备上提升性能。
int rendering/lights_and_shadows/positional_shadow/atlas_quadrant_0_subdiv = 2
阴影贴图的细分象限大小。请参阅阴影映射文档。
int rendering/lights_and_shadows/positional_shadow/atlas_quadrant_1_subdiv = 2
阴影贴图的细分象限大小。请参阅阴影映射文档。
int rendering/lights_and_shadows/positional_shadow/atlas_quadrant_2_subdiv = 3
阴影贴图的细分象限大小。请参阅阴影映射文档。
int rendering/lights_and_shadows/positional_shadow/atlas_quadrant_3_subdiv = 4
阴影贴图的细分象限大小。请参阅阴影映射文档。
int rendering/lights_and_shadows/positional_shadow/atlas_size = 4096
阴影图集的大小(用于 OmniLight 和 SpotLight)。请参阅文档。
int rendering/lights_and_shadows/positional_shadow/atlas_size.mobile = 2048
由于性能和驱动支持,在移动设备上会对 rendering/lights_and_shadows/positional_shadow/atlas_size 以低配数值覆盖。
int rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality = 2
OmniLight3D 和 SpotLight3D 投射的阴影的质量设置。质量设置地越高,从阴影贴图读取的样本越多,因此速度也越慢。质量设置地较低时,可能会导致阴影看起来有颗粒感。
注意:Soft Very Low 设置会自动将常量的阴影模糊乘以 0.75 倍,从而减少可见的噪点。这种对自动模糊的更改仅影响 Light3D.shadow_blur 中定义的常量模糊系数,不影响 DirectionalLight3D 的 Light3D.light_angular_distance 执行的可变模糊。
注意:Soft High 和 Soft Ultra 设置,会自动将阴影模糊分别乘以 1.5 倍和 2 倍,从而更好地利用增加的样本数。这种对模糊的提升还改善了动态对象阴影的稳定性。
int rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality.mobile = 0
由于性能和驱动支持,在移动设备上会对 rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality 以低配数值覆盖。
bool rendering/lights_and_shadows/use_physical_light_units = false
允许对光源使用基于物理的单位。基于物理的单位往往比 Godot 使用的任意单位大得多,但它们可用于将 Godot 内的照明与真实世界的照明相匹配。由于自然界中照明条件的动态范围很大,Godot 在渲染之前会将曝光量烘焙到各种照明量中。大多数光源在运行时根据活动的 CameraAttributes 资源自动烘焙曝光,但 LightmapGI 和 VoxelGI 需要在烘焙时设置 CameraAttributes 资源以减少动态范围。在运行时,Godot 将自动协调烘焙的曝光与活动的曝光,以确保照明保持一致。
float rendering/limits/cluster_builder/max_clustered_elements = 512
可以在相机视图中一次渲染的集群元素(OmniLight3D + SpotLight3D + Decal + ReflectionProbe)的最大数量。如果相机视图中存在更多的集群元素,其中一些将不会被渲染(导致在相机移动期间弹出)。在灯光和贴花上启用距离淡入淡出(Light3D.distance_fade_enabled、Decal.distance_fade_enabled)有助于避免达到该限制。
减小该值可能会提高某些设置的 GPU 性能,即使在项目中从未达到集群元素最大数量也是如此。
注意:该设置仅在使用 Forward+ 渲染方式时有效,对 Mobile 和 Compatibility 无效。
int rendering/limits/forward_renderer/threaded_render_minimum_instances = 500
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/limits/global_shader_variables/buffer_size = 65536
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/limits/opengl/max_lights_per_object = 8
每个对象可渲染的全向灯和聚光灯的最大数量。默认值为 8,这意味着每个表面最多可受到 8 个全向灯和 8 个聚光灯影响。这进一步受到硬件支持和 rendering/limits/opengl/max_renderable_lights 的限制。将该设置得较低会略微减少内存使用,可能会减少着色器编译时间,并可能导致在低端、移动或 Web 设备上的渲染速度更快。
注意:该设置仅支持 Compatibility 渲染方式,不支持 Forward+ 和 Mobile。
int rendering/limits/opengl/max_renderable_elements = 65536
一帧中可渲染的最大元素数。如果每帧可见的元素多于此,则不会绘制它们。请记住,元素指的是网格表面,而不是网格本身。将此值设置得较低会略微减少内存使用量,并可能减少着色器编译时间,尤其是在 Web 上。对于大多数用途,默认值是合适的,但在 Web 导出时可考虑尽可能降低。
注意:该设置仅在支持 Compatibility 渲染方式,不支持 Forward+ 和 Mobile。
int rendering/limits/opengl/max_renderable_lights = 32
一帧中可渲染的定位灯的最大数量。如果使用的灯多于此数量,则它们将被忽略。将此值设置得较低会略微减少内存使用量,并可能减少着色器编译时间,尤其是在 Web 上。对于大多数用途,默认值是合适的,但在 Web 导出时可考虑尽可能降低。
注意:该设置仅在支持 Compatibility 渲染方式,不支持 Forward+ 和 Mobile。
int rendering/limits/spatial_indexer/threaded_cull_minimum_instances = 1000
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/limits/spatial_indexer/update_iterations_per_frame = 10
目前没有这个属性的描述。请帮我们贡献一个!
float rendering/limits/time/time_rollover_secs = 3600
目前没有这个属性的描述。请帮我们贡献一个!
float rendering/mesh_lod/lod_change/threshold_pixels = 1.0
用于 ReflectionProbe 中渲染的网格的自动 LOD 偏置。较高的值将使用生成了 LOD 变化的不太详细的网格版本。如果设置为 0.0
,则自动 LOD 将被禁用。增加 rendering/mesh_lod/lod_change/threshold_pixels 以牺牲几何细节为代价提高性能。
注意:rendering/mesh_lod/lod_change/threshold_pixels 不影响 GeometryInstance3D 可见性范围(也称为“手动”LOD 或分层 LOD)。
注意:只有在项目启动时该属性才会被读取。要在运行时调整自动 LOD 阈值,请在根 Viewport 上设置 Viewport.mesh_lod_threshold。
int rendering/occlusion_culling/bvh_build_quality = 2
渲染遮挡剔除缓冲区时使用的 BVH 质量。值越高,得到的遮挡剔除越精确,但代价是 CPU 使用率也越高。另见 rendering/occlusion_culling/occlusion_rays_per_thread。
注意:这个属性仅在项目启动时读取。如果要在运行时调整 BVH 构建质量,请使用 RenderingServer.viewport_set_occlusion_culling_build_quality。
int rendering/occlusion_culling/occlusion_rays_per_thread = 512
每个 CPU 线程所追踪的剔除射线数量。更高的值将导致更准确的遮挡剔除,但代价是更高的 CPU 使用率。遮挡剔除缓冲区的像素数大致等于 occlusion_rays_per_thread * number_of_logical_cpu_cores
,因此它取决于系统的 CPU。因此,内核较少的 CPU 将使用较低的分辨率,来尝试保持跨设备的性能成本。另见 rendering/occlusion_culling/bvh_build_quality。
注意:这个属性仅在项目启动时读取。如果要在运行时调整每个线程所追踪的剔除射线数量,请使用 RenderingServer.viewport_set_occlusion_rays_per_thread。
bool rendering/occlusion_culling/use_occlusion_culling = false
如果为 true
,则 OccluderInstance3D 节点在根视口的 3D 遮挡剔除中可用。对于自定义视口,必须改为将 Viewport.use_occlusion_culling 设为 true
。
注意:启用遮挡剔除会消耗 CPU 资源。请只在打算使用时启用遮挡剔除。阻挡视线的对象很少或根本不存在的大型开放场景通常不会因遮挡剔除而获得什么优化。相对于遮挡剔除,大型开放场景通常能够从网格 LOD 和可见范围(GeometryInstance3D.visibility_range_begin 和 GeometryInstance3D.visibility_range_end)中获益。
注意:由于内存限制,Web 导出模板中默认不支持遮挡剔除。编译自定义 Web 导出模板时使用 module_raycast_enabled=yes
可以启用。
int rendering/reflections/reflection_atlas/reflection_count = 64
存储在反射图集中的立方体贴图数量。场景中的 ReflectionProbe 数量受此数量限制。数字越高,所需的显存越多。
int rendering/reflections/reflection_atlas/reflection_size = 256
ReflectionProbe 的立方体贴图面的大小。数字越大,所需的显存越多,并且反射探针的更新也可能变得越慢。
int rendering/reflections/reflection_atlas/reflection_size.mobile = 128
移动设备上 rendering/reflections/reflection_atlas/reflection_size 的低端覆盖项,出于性能问题或驱动程序支持的考虑。
bool rendering/reflections/sky_reflections/fast_filter_high_quality = false
使用快速过滤算法的更高质量变体。明显比使用默认质量慢,但会产生更平滑的反射。只应在场景特别详细时使用。
int rendering/reflections/sky_reflections/ggx_samples = 32
设置在对 Sky 和 ReflectionProbe 使用重要性采样时要采用的样本数。较高的值将导致更平滑、更高质量的反射,但会增加计算辐照度映射的时间。一般来说,更简单的低动态范围环境需要更少的样本,而 HDR 环境和具有高细节层次的环境需要更多的样本。
int rendering/reflections/sky_reflections/ggx_samples.mobile = 16
移动设备上 rendering/reflections/sky_reflections/ggx_samples 的低端覆盖项,出于性能问题或驱动程序支持的考虑。
int rendering/reflections/sky_reflections/roughness_layers = 8
使用重要性采样时,限制在辐照度映射中使用的层数。较低的数字会稍微快一些,并且会占用较少的 VRAM。
bool rendering/reflections/sky_reflections/texture_array_reflections = true
如果为 true
,则使用纹理数组而不是 mipmap,用于反射探针和全景背景(天空)。这减少了反射上的抖动噪声和放大伪影,但计算速度明显变慢,并且使用了 rendering/reflections/sky_reflections/roughness_layers 倍的内存。
bool rendering/reflections/sky_reflections/texture_array_reflections.mobile = false
移动设备上 rendering/reflections/sky_reflections/texture_array_reflections 的低端覆盖项,出于性能问题或驱动程序支持的考虑。
String rendering/renderer/rendering_method = "forward_plus"
设置项目将使用的渲染器。选项有:
Forward Plus:为桌面设备设计的高端渲染器。有较高的基础开销,但能够很好地扩展到复杂的场景。不适合老旧设备和移动设备。
Mobile:为移动设备设计的现代渲染器。基础开销比 Forward Plus 低,但在处理有许多元素的大型场景时,扩展性并不理想。
GL Compatibility:为老旧设备设计的低端渲染器。基于 OpenGL 3.3/ OpenGL ES 3.0 / WebGL 2 API 的限制。
String rendering/renderer/rendering_method.mobile = "mobile"
移动设备的 rendering/renderer/rendering_method 覆盖项。
String rendering/renderer/rendering_method.web = "gl_compatibility"
Web 平台的 rendering/renderer/rendering_method 覆盖项。
String rendering/rendering_device/driver
设置渲染器驱动程序,在使用集群渲染器、移动渲染器等基于 RenderingDevice 的渲染器时使用。这个属性不能直接编辑,请改用特定平台的覆盖项来设置驱动程序。
String rendering/rendering_device/driver.android
rendering/rendering_device/driver 在 Android 的覆盖项。
String rendering/rendering_device/driver.ios
rendering/rendering_device/driver 在 iOS 的覆盖项。
String rendering/rendering_device/driver.linuxbsd
rendering/rendering_device/driver 在 LinuxBSD 的覆盖项。
String rendering/rendering_device/driver.macos
rendering/rendering_device/driver 在 macOS 的覆盖项。
String rendering/rendering_device/driver.windows
rendering/rendering_device/driver 在 Windows 的覆盖项。
float rendering/rendering_device/pipeline_cache/save_chunk_size_mb = 3.0
决定管线缓存保存到磁盘的间隔。值越低,保存地越频繁。
int rendering/rendering_device/staging_buffer/block_size_kb = 256
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/rendering_device/staging_buffer/max_size_mb = 128
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/rendering_device/staging_buffer/texture_upload_region_size_px = 64
目前没有这个属性的描述。请帮我们贡献一个!
int rendering/rendering_device/vulkan/max_descriptors_per_pool = 64
目前没有这个属性的描述。请帮我们贡献一个!
float rendering/scaling_3d/fsr_sharpness = 0.2
决定使用 FSR 放大模式时放大图像的清晰度。每个整数的锐度减半。值从 0.0(最锐利)到 2.0。高于 2.0 的值不会产生明显的差异。
int rendering/scaling_3d/mode = 0
设置缩放 3D 模式。双线性缩放以不同的分辨率渲染,以对视口进行欠采样或超采样。FidelityFX 超分辨率(FidelityFX Super Resolution) 1.0,缩写为 FSR,是一种放大技术,可通过使用一种空间感知放大算法,以快速帧速率生成高质量图像。FSR 比双线性稍微贵一点,但它产生的图像质量明显更高。在特别低端的 GPU 上,FSR 的性价比过低(与使用具有一个稍高分辨率缩放以匹配性能的双线性缩放相比)。
注意:FSR 只在使用 Forward+ 渲染方式时有效,对 Mobile 或 Compatibility 无效。如果使用不兼容的渲染方法,FSR 将回退到双线性缩放。
float rendering/scaling_3d/scale = 1.0
根据视口大小缩放 3D 渲染缓冲区,使用 rendering/scaling_3d/mode 中指定的图像过滤器将输出图像缩放至完整的视口大小。比 1.0
小的值可以牺牲质量(欠采样)换取更高的 3D 渲染速度。比 1.0
大的值仅对双线性模式有效,可以大幅牺牲性能(超采样)换取 3D 渲染质量的提升。另见 rendering/anti_aliasing/quality/msaa_3d 多重采样抗锯齿,性能成本显著降低,但仅平滑多边形的边缘。
bool rendering/shader_compiler/shader_cache/compress = true
目前没有这个属性的描述。请帮我们贡献一个!
bool rendering/shader_compiler/shader_cache/enabled = true
启用着色器缓存,编译后的着色器会存储在磁盘上,防止在下次需要该着色器时因为编译着色器而带来卡顿。
bool rendering/shader_compiler/shader_cache/strip_debug = false
目前没有这个属性的描述。请帮我们贡献一个!
bool rendering/shader_compiler/shader_cache/strip_debug.release = true
目前没有这个属性的描述。请帮我们贡献一个!
bool rendering/shader_compiler/shader_cache/use_zstd_compression = true
目前没有这个属性的描述。请帮我们贡献一个!
bool rendering/shading/overrides/force_lambert_over_burley = false
如果为 true
,则使用速度更快但质量较低的 Lambert 材质照明模型,不使用 Burley 模型。
bool rendering/shading/overrides/force_lambert_over_burley.mobile = true
由于性能问题或驱动程序支持,移动设备上用于 rendering/shading/overrides/force_lambert_over_burley 的低端覆盖。
bool rendering/shading/overrides/force_vertex_shading = false
如果为 true
,为所有渲染强制顶点着色。这可以大大提高性能,但也会极大地降低质量。可用于优化低端移动设备的性能。
注意:这个设置目前没有效果,因为顶点着色还没有实现。
bool rendering/shading/overrides/force_vertex_shading.mobile = true
由于性能问题或驱动程序支持,移动设备上用于 rendering/shading/overrides/force_vertex_shading 的低端覆盖。
注意:这个设置目前没有效果,因为顶点着色还没有实现。
int rendering/textures/canvas_textures/default_texture_filter = 1
CanvasItem 所使用的默认纹理过滤模式。
int rendering/textures/canvas_textures/default_texture_repeat = 0
CanvasItem 所使用的默认纹理重复模式。
int rendering/textures/decals/filter = 3
Decal 节点的过滤质量。使用 Anisotropic(各向异性)过滤模式时,各向异性过滤级别由 rendering/textures/default_filters/anisotropic_filtering_level 控制。
int rendering/textures/default_filters/anisotropic_filtering_level = 2
设置在纹理上使用各向异性过滤时要采用的最大样本数(作为 2 的幂)。更高的采样数将导致倾斜角度的纹理更清晰,但计算成本更高。0
的值会强制禁用各向异性过滤,即使在启用它的材质上也是如此。
如果贴花和投影器被配置为使用各向异性过滤,则各向异性过滤级别也会影响它们。请参阅 rendering/textures/decals/filter and rendering/textures/light_projectors/filter。
注意:出于性能原因,各向异性过滤在 2D 和 3D 材质上默认不启用。要使该设置在 3D 中产生效果,请在材质上将 BaseMaterial3D.texture_filter 设置为 BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC 或 BaseMaterial3D.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC。要使该设置在 2D 中生效,请在显示纹理的 CanvasItem 节点上(或 CanvasTexture 中)将 CanvasItem.texture_filter 设置为 CanvasItem.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC 或 CanvasItem.TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC。然而,各向异性过滤在 2D 中并不实用,因此在 2D 中只有在它产生有意义的视觉差异时才对纹理启用它。
注意:只有在项目启动时该属性才会被读取。目前无法在运行时更改该设置。
float rendering/textures/default_filters/texture_mipmap_bias = 0.0
通过从更低或更高的 mipmap 中读取数据影响最终纹理的锐度(也叫“纹理 LOD 偏置”)。负值会让 mipmap 纹理更锐利,但从较远处观察时颗粒更明显,而正值会让 mipmap 纹理更模糊(即便凑近看也一样)。
启用时间抗锯齿(rendering/anti_aliasing/quality/use_taa)会对这个值应用 -0.5
的偏移量,而启用 FXAA(rendering/anti_aliasing/quality/screen_space_aa)则会对这个值应用 -0.25
的偏移量。如果同时启用 TAA 和 FXAA,则会对这个值应用 -0.75
的偏移量。
注意:如果 rendering/scaling_3d/scale 比 1.0
小(包含),则会使用 rendering/textures/default_filters/texture_mipmap_bias 自动调整 mipmap 偏置,内部会根据缩放系数进行计算。公式为 log2(scaling_3d_scale) + mipmap_bias
。
bool rendering/textures/default_filters/use_nearest_mipmap_filter = false
如果为 true
,则在使用 mipmap 时使用最近邻 mipmap 过滤(也称为“双线性过滤”),这将导致在 mipmap 阶段之间出现可见的接缝。因为使用的内存带宽更少,这可能会提高移动设备的性能。如果为 false
,则使用线性 mipmap 过滤(也称为“三线性过滤”)。
注意:只有在项目启动时该属性才会被读取。目前无法在运行时更改该设置。
int rendering/textures/light_projectors/filter = 3
OmniLight3D 和 SpotLight3D 投影器的过滤质量。使用 Anisotropic(各向异性)过滤模式时,各向异性过滤级别由 rendering/textures/default_filters/anisotropic_filtering_level 控制。
bool rendering/textures/lossless_compression/force_png = false
如果为 true
,纹理导入器将使用 PNG 格式导入无损纹理。否则默认使用 WebP。
bool rendering/textures/vram_compression/import_etc2_astc = false
如果为 true
,则纹理导入器,将使用 Ericsson 纹理压缩 2 算法导入 VRAM 压缩纹理以获取较低质量的纹理和法线贴图,并使用自适应可缩放纹理压缩算法导入高质量纹理(4x4 块大小)。
注意:这是设置覆盖项。即便设为 false
,纹理导入器也始终会导入宿主平台所需的格式。
注意:更改该设置不会影响之前已经导入的纹理。要使该设置应用于已导入的纹理,请退出编辑器,移除位于项目文件夹内的 .godot/imported/
文件夹,然后重新启动编辑器(请参阅 application/config/use_hidden_project_data_directory)。
bool rendering/textures/vram_compression/import_s3tc_bptc = false
如果为 true
,纹理导入器将使用 S3 纹理压缩算法(DXT1-5)导入 VRAM 压缩纹理以获得较低质量的纹理;并使用 BPTC 算法(BC6H 和 BC7)导入高质量纹理。该算法仅在 PC 桌面平台和主机平台上受支持。
注意:这是设置覆盖项。即便设为 false
,纹理导入器也始终会导入宿主平台所需的格式。
注意:更改该设置不会影响之前已经导入的纹理。要使该设置应用于已导入的纹理,请退出编辑器,移除位于项目文件夹内的 .godot/imported/
文件夹,然后重新启动编辑器(请参阅 application/config/use_hidden_project_data_directory)。
int rendering/textures/webp_compression/compression_method = 2
WebP 的默认压缩方法。影响有损和无损 WebP。较高的值会以压缩速度为代价产生较小的文件。解压缩速度基本上不受压缩方法的影响。支持的值为 0 到 6。请注意,高于 4 的压缩方法非常慢并且节省的空间很小。
float rendering/textures/webp_compression/lossless_compression_factor = 25
无损 WebP 的默认压缩系数。解压速度通常不受压缩系数的影响。支持的值为 0 到 100。
bool rendering/viewport/hdr_2d = false
如果为 true
,则会在根视口上启用 Viewport.use_hdr_2d。这样 2D 渲染就能够利用需要高动态范围的效果(例如 2D 辉光)。
bool rendering/viewport/transparent_background = false
如果为 true
,则在根视口上启用 Viewport.transparent_bg 。这样在同时启用 display/window/size/transparent 和 display/window/per_pixel_transparency/allowed 之后,逐像素透明就会生效。
int rendering/vrs/mode = 0
为主视口设置默认的可变速率着色(VRS)模式。请参阅 Viewport.vrs_mode 以在运行时更改该设置,并参阅 VRSMode 以获取可能的值。
String rendering/vrs/texture = ""
如果 rendering/vrs/mode 为 Texture,则这是 VRS 图像所加载的默认纹理的路径。
该纹理必须使用无损压缩格式,以便可以精确匹配颜色。以下 VRS 密度会映射为各种颜色,较亮的颜色代表较低的着色精度。
- 1x1 = rgb(0, 0, 0) - #000000
- 1x2 = rgb(0, 85, 0) - #005500
- 2x1 = rgb(85, 0, 0) - #550000
- 2x2 = rgb(85, 85, 0) - #555500
- 2x4 = rgb(85, 170, 0) - #55aa00
- 4x2 = rgb(170, 85, 0) - #aa5500
- 4x4 = rgb(170, 170, 0) - #aaaa00
- 4x8 = rgb(170, 255, 0) - #aaff00 - 大多数硬件不支持
- 8x4 = rgb(255, 170, 0) - #ffaa00 - 大多数硬件不支持
- 8x8 = rgb(255, 255, 0) - #ffff00 - 大多数硬件不支持
float threading/worker_pool/low_priority_thread_ratio = 0.3
目前没有这个属性的描述。请帮我们贡献一个!
int threading/worker_pool/max_threads = -1
WorkerThreadPool 所使用的最大线程数。-1
表示无限制。
bool threading/worker_pool/use_system_threads_for_low_priority_tasks = true
目前没有这个属性的描述。请帮我们贡献一个!
String xr/openxr/default_action_map = "res://openxr_action_map.tres"
默认加载的动作映射配置。
bool xr/openxr/enabled = false
如果为 true
,Godot 将在启动时初始化 OpenXR。
int xr/openxr/environment_blend_mode = "0"
指定 OpenXR 应如何混合环境。针对的是部分 AR 和穿透设备,XR 合成器会混合相机图像。
bool xr/openxr/extensions/eye_gaze_interaction = false
指定是否为该项目启用眼动追踪。根据平台的不同,可能需要额外的导出配置。
bool xr/openxr/extensions/hand_tracking = true
如果为 true,则将启用手部跟踪扩展(如果可用)。
int xr/openxr/form_factor = "0"
指定是否应为 HMD 或手持设备配置 OpenXR。
bool xr/openxr/foveation_dynamic = false
如果为 true 并且支持注视点,将根据帧速率自动调整注视点级别,直至达到 xr/openxr/foveation_level 上设置的级别。
int xr/openxr/foveation_level = "0"
应用的注视点级别(如果支持):0 = 关闭、1 = 低、2 = 中、3 = 高。
int xr/openxr/reference_space = "1"
指定默认参照空间。
bool xr/openxr/startup_alert = true
如果为 true
,则启动时如果 OpenXR 初始化失败,Godot 就会显示警告弹框。
bool xr/openxr/submit_depth_buffer = false
如果为 true
,则 OpenXR 会管理深度缓冲区,使用深度缓冲区进行高级再投影,前提是 XR 运行时支持。请注意,Godot 中的部分渲染特性无法与该特性一同使用。
int xr/openxr/view_configuration = "1"
指定视图配置,用于配置 OpenXR 设置单视场或立体渲染。
bool xr/shaders/enabled = false
如果为 true
,Godot 将编译 XR 所需的着色器。
方法说明
void add_property_info ( Dictionary hint )
为某个属性添加自定义属性信息。字典必须包含:
"name"
:String(属性名称)"type"
:int(见 Variant.Type)可选的
"hint"
:int(见 PropertyHint)和"hint_string"
:String
示例:
GDScriptC#
ProjectSettings.set("category/property_name", 0)
var property_info = {
"name": "category/property_name",
"type": TYPE_INT,
"hint": PROPERTY_HINT_ENUM,
"hint_string": "one,two,three"
}
ProjectSettings.add_property_info(property_info)
ProjectSettings.Singleton.Set("category/property_name", 0);
var propertyInfo = new Godot.Collections.Dictionary
{
{"name", "category/propertyName"},
{"type", (int)Variant.Type.Int},
{"hint", (int)PropertyHint.Enum},
{"hint_string", "one,two,three"},
};
ProjectSettings.AddPropertyInfo(propertyInfo);
void clear ( String name )
清除整个配置(不推荐,可能会弄坏东西)。
Dictionary[] get_global_class_list ( )
返回已注册的全局类的 Array。每个全局类都被表示为包含以下条目的 Dictionary:
base
是基类的名称;class
是被注册的全局类的名称;icon
是全局类自定义图标的路径,如果有的话;language
是编写全局类的编程语言的名称;path
是包含全局类的文件的路径。
注意:脚本和图标路径都是项目文件系统的本地路径,即它们以 res://
开头。
int get_order ( String name ) const
返回配置值的顺序(保存到配置文件时会产生影响)。
Variant get_setting ( String name, Variant default_value=null ) const
返回由名称 name
标识的设置项的值。如果该设置项不存在,并且指定了默认值 default_value
,则会返回 default_value
的值。否则返回 null
。
示例:
GDScriptC#
print(ProjectSettings.get_setting("application/config/name"))
print(ProjectSettings.get_setting("application/config/custom_description", "未指定描述。"))
GD.Print(ProjectSettings.GetSetting("application/config/name"));
GD.Print(ProjectSettings.GetSetting("application/config/custom_description", "未指定描述。"));
注意:这个方法不会自动考虑可能的特性覆盖项。如需无缝处理,请使用 get_setting_with_override。
Variant get_setting_with_override ( StringName name ) const
类似于 get_setting,但会应用有效的特性标签覆盖项。
示例:
如果存在设置覆盖项“application/config/name.windows”并且执行了下列代码:
GDScriptC#
print(ProjectSettings.get_setting_with_override("application/config/name"))
GD.Print(ProjectSettings.GetSettingWithOverride("application/config/name"));
那么项目在 Windows 操作系统上运行时会返回覆盖的设置值。
String globalize_path ( String path ) const
返回与本地化 path
(以 res://
或 user://
开头)相对应的绝对原生 OS 路径。返回的路径将因操作系统和用户首选项而异。 请参阅《Godot 项目中的文件路径》以查看这些路径转换成的内容。另请参阅 localize_path。
注意:对 res://
调用 globalize_path 在导出的项目中不会起作用。而是,当从导出的项目运行时,将可执行文件的基目录添加到路径中:
var path = ""
if OS.has_feature("editor"):
# 从编辑器二进制文件运行。
# `path` 将包含位于项目根目录中的 `hello.txt` 的绝对路径。
path = ProjectSettings.globalize_path("res://hello.txt")
else:
# 从导出的项目运行。
# `path` 将包含可执行文件旁边的 `hello.txt` 的绝对路径。
# 这与使用 `ProjectSettings.globalize_path()` 和 `res://` 路径*不*相同,
# 但在目的上足够接近。
path = OS.get_executable_path().get_base_dir().path_join("hello.txt")
bool has_setting ( String name ) const
配置值存在时返回 true
。
bool load_resource_pack ( String pack, bool replace_files=true, int offset=0 )
将 pack
指定的 .pck 或 .zip 文件的内容,加载到资源文件系统(res://
)。成功时返回 true
。
注意:如果来自 pack
的文件与资源文件系统中已有的文件路径相同,则任何加载该文件的尝试,都将使用来自 pack
的文件,除非 replace_files
被设置为 false
。
注意:可选的 offset
参数可用于指定资源包开头的字节偏移量。这只支持 .pck 文件。
String localize_path ( String path ) const
返回对应于绝对本地操作系统 path
的本地化路径(以 res://
开头)。另见 globalize_path。
Error save ( )
将配置保存到 project.godot
文件中。
注意:此方法是为编辑器插件使用的,因为修改后的 ProjectSettings 无法在运行的应用程序中加载回来。如果要更改导出项目中的项目设置,请使用 save_custom 保存 override.cfg
文件。
Error save_custom ( String file )
将配置保存到自定义文件。文件扩展名必须是 .godot
(以基于文本的 ConfigFile 格式保存)或 .binary
(以二进制格式保存)。你也可以保存为 override.cfg
文件,它也是文本,但与其他格式不同,可以在导出的项目中使用。
void set_as_basic ( String name, bool basic )
决定指定的设置是基本设置还是高级设置。项目设置中始终显示基本设置。高级设置仅在用户启用“高级设置”选项时显示。
void set_as_internal ( String name, bool internal )
决定指定的设置是否为内部设置。内部设置不会在“项目设置”对话框中出现。常用于插件,用来存储内部设置,避免直接暴露给用户。
void set_initial_value ( String name, Variant value )
设置指定设置的初始值。这是属性恢复到的值。
void set_order ( String name, int position )
设置配置值的顺序(保存到配置文件时会产生影响)。
void set_restart_if_changed ( String name, bool restart )
设置一个设置是否需要重新启动编辑器才能正确生效。
注意:这只是向用户显示的提示,提示必须重新启动编辑器才能使更改生效。启用 set_restart_if_changed 不会延迟在更改时设置的设置。
void set_setting ( String name, Variant value )
设置设置项的值。
示例:
GDScriptC#
ProjectSettings.set_setting("application/config/name", "Example")
ProjectSettings.SetSetting("application/config/name", "Example");
也可以用来擦除自定义项目设置。方法是将设置项的值设置为 null
。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.